轉(zhuǎn)載:http://www.reibang.com/p/1937d532a120
lambda表達(dá)式是什么开皿?
lambda表達(dá)式就是一個(gè)匿名函數(shù)
我們通常這樣寫匿名函數(shù):
這樣寫可能有點(diǎn)麻煩,使用lambda表達(dá)式可以這么寫:
當(dāng)然還可以更加簡(jiǎn)潔
lambda如何寫?
-
1.聲明
-
2.實(shí)現(xiàn)
可以這么寫
由于知道了出入?yún)?shù)的是什么類型,我們還可以這么寫:
-
更加簡(jiǎn)潔:
在lambda中不可用直接使用return:
你可以使用return+label這種形式:
lambda中最后一個(gè)表達(dá)式的值是默認(rèn)的返回值:
高階函數(shù)是啥玩意嗦随?
高階函數(shù)其實(shí)它就是個(gè)函數(shù)列荔。只不過(guò)這個(gè)函數(shù)特征是:參數(shù)是函數(shù)敬尺,或者返回值是函數(shù),如下圖:
-
1.參數(shù)是函數(shù)
-
2.返回值是函數(shù)
解釋:
在kotlin中贴浙,函數(shù)是一種類型砂吞,所以我們可以把一個(gè)具體的函數(shù)當(dāng)成對(duì)象。
既然函數(shù)是一個(gè)對(duì)象啦崎溃,我們想怎么玩這個(gè)對(duì)象就怎么玩蜻直。
比如:
1.把函數(shù)當(dāng)成參數(shù)傳遞
2.把函數(shù)當(dāng)成返回值傳遞出來(lái)
如何將函數(shù)傳遞給高階函數(shù)?
我們明白了高階函數(shù)的定義,那么如何給高階函數(shù)傳參呢概而?
實(shí)用場(chǎng)景:
比如我們要對(duì)int的集合做變換:
你現(xiàn)在只要提供一個(gè)變換函數(shù)即可呼巷,想怎么變換由你,是不是很靈活赎瑰!