您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么搞懂lambda表達式,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在學習lambda之前,我們先搞清楚什么是函數。我理解的函數就是輸入一些東西經過一定的規則后輸出。假如我們超時買蘋果,蘋果的單價是5元,則f(x) = 5x;其中x代表我們購買蘋果的重量,則蘋果的重量和價格對應的一種關系就是函數。我們看看這個函數,我們關注的重點其實就是x和5x。這樣我們就好理解了,函數關注的重點就是入參和對應的函數規則,其他的東西都不重要。下面我們結合一段java代碼來分析:
@FunctionalInterfacepublic interface Apple { int buyApple(int x);}
我們根據前面定義的函數結合Lambda來重寫這個實現 ——「關注入參和函數規則」,即我們關注的代碼只有:
(int x){ return 5*x;}
然后我們加上lambda運算符就可以得到如下代碼了
Apple apple = (int x) ->{ return 5*x;};
我們的lambda表達式基于函數式接口,「lambda規定接口中只能有一個需要被實現的方法」。即可以有多個方法,但是只有一個方法需要被實現。java8接口中被default修飾的方法會有默認實現。
@FunctionalInterface注解用來修飾函數式接口,接口要求只能由一個未被實現的方法。
lambda的語法形式為 () -> {},其中 () 用來描述參數列表,{} 用來描述方法體,-> 為 lambda運算符 ,讀作(goes to)。
Apple apple = (x) ->{ return 5*x;};
Apple apple = x ->{ return 5*x;};
Apple apple = x -> 5*x
我們就不需要使用傳統這樣優化完成之后,我們整體的代碼就成了這樣。
@FunctionalInterfacepublic interface Apple { int buyApple(int x);}
public static void main(String[] args) { Apple apple = x -> 5*x; }關于怎么搞懂lambda表達式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。