2013-05-31 152 views
47

正在Java 8中添加Lambda表達式。我想了解爲什麼這很重要。對於尚未暴露於函數式編程習慣用法的Java程序員來說,這意味着什麼?這是否意味着我可以編寫性能更好或可以大規模擴展的代碼,或者只是使代碼更加冗長。或者全部。Java Lambda表達式

+0

我參加了一門關於編程語言組織的課,我的教授告訴我的是,你可以讓你的代碼很懶。你也是,我還不明白這個,能不能「爬到山頂」?但是真的,它讓我失望了,迫不及待地想看到答案。 – 2013-05-31 14:48:40

+0

嗯,我可以看到的一個用途是運行時選擇和功能創建。假設你對一個對象做了一些事情,並且根據你做了什麼,你需要將它傳遞給100個方法之一或者一個方法與100個ifs,使用lambda表達式,你可以在沒有if的情況下編寫一個方法。 – arynaq

+5

'E = hc /λ'!!!克蒙人! – Tdorno

回答

38

關於這個話題,Oracle已經有tutorial了。它列出了幾個很好的用例。

在我找到鏈接之前,我會說lambda表達式讓你傳遞「函數」給代碼。所以你可以更容易地編寫代碼,以前我們需要一整套的接口/抽象類。例如,假設您的代碼具有一些複雜的循環/條件邏輯或工作流程。一步你想做一些不同的事情。用lambda表達式,你可以傳入那個「不同的東西」。但請閱讀教程。這很清楚。

+0

我有點困惑因爲你使用短語 - 「*在我找到鏈接之前,我會說*」。那麼,在您找到Oracle鏈接後,您的意見/想法會發生改變?我的意思是你在想錯或「少」,在閱讀完這個鏈接之後,你意識到還有更多。我問的原因是我之前提到的是這個鏈接的正確和主旨,所以我想知道我是否沒有意識到lambda表達式的全部潛力。 – hagrawal

+0

我的意思是我的語言。本教程更好地表達了它 –