溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么搞懂lambda表達式

發(fā)布時間:2021-12-10 10:02:42 來源:億速云 閱讀:142 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹怎么搞懂lambda表達式,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

什么是函數(shù)式編程

在學習lambda之前,我們先搞清楚什么是函數(shù)。我理解的函數(shù)就是輸入一些東西經(jīng)過一定的規(guī)則后輸出。假如我們超時買蘋果,蘋果的單價是5元,則f(x) = 5x;其中x代表我們購買蘋果的重量,則蘋果的重量和價格對應的一種關系就是函數(shù)。我們看看這個函數(shù),我們關注的重點其實就是x和5x。這樣我們就好理解了,函數(shù)關注的重點就是入?yún)⒑蛯暮瘮?shù)規(guī)則,其他的東西都不重要。下面我們結(jié)合一段java代碼來分析:

  • 函數(shù)式接口
@FunctionalInterfacepublic interface Apple {    int buyApple(int x);}
 
  • 方法實現(xiàn)

怎么搞懂lambda表達式

我們根據(jù)前面定義的函數(shù)結(jié)合Lambda來重寫這個實現(xiàn) ——「關注入?yún)⒑秃瘮?shù)規(guī)則」,即我們關注的代碼只有:

(int x){    return 5*x;}
 

然后我們加上lambda運算符就可以得到如下代碼了

Apple apple = (int x) ->{    return  5*x;};
 
 

函數(shù)式接口

我們的lambda表達式基于函數(shù)式接口,「lambda規(guī)定接口中只能有一個需要被實現(xiàn)的方法」。即可以有多個方法,但是只有一個方法需要被實現(xiàn)。java8接口中被default修飾的方法會有默認實現(xiàn)。

@FunctionalInterface注解用來修飾函數(shù)式接口,接口要求只能由一個未被實現(xiàn)的方法。

 

lambda表達式簡化

lambda的語法形式為 () -> {},其中 () 用來描述參數(shù)列表,{} 用來描述方法體,-> 為 lambda運算符 ,讀作(goes to)。

  1. 簡化參數(shù)類型,可以不寫參數(shù)類型,但是必須所有參數(shù)的參數(shù)類型都不寫。
Apple apple = (x) ->{    return  5*x;};
 
  1. 簡化參數(shù)小括號,如果只有一個參數(shù)則可以省略小括號。
Apple apple = x ->{    return  5*x;};
 
  1. 簡化方法體大括號,如果方法只有一條語句,則可以省略大括號,如果有返回值,不能寫return。
Apple apple = x -> 5*x
 

我們就不需要使用傳統(tǒng)這樣優(yōu)化完成之后,我們整體的代碼就成了這樣。

@FunctionalInterfacepublic interface Apple {    int buyApple(int x);}
 public static void main(String[] args) {     Apple apple = x -> 5*x; }
關于怎么搞懂lambda表達式就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI