kotlin lambda 基礎(chǔ)知識(shí)

一.普通lambda

lambda定義:

lambda就是將一小段代碼封裝成匿名函數(shù),以參數(shù)值的方式傳遞到函數(shù)中,供函數(shù)使用。

    val sum = { x:Int, y:Int -> 
         x + y
    } 

lambda表達(dá)式始終用花括號(hào)包圍,并用 -> 將參數(shù)列表和函數(shù)主體分離。當(dāng)lambda自行進(jìn)行類型推導(dǎo)時(shí),最后一行表達(dá)式返回值類型作為lambda的返回值類型。現(xiàn)在一個(gè)函數(shù)必需的參數(shù)列表、函數(shù)體和返回類型。

函數(shù)類型

函數(shù)類型和lambda一樣,使用 -> 作分隔符,但函數(shù)類型是將參數(shù)類型列表和返回值類型分開,所有函數(shù)類型都有一個(gè)圓括號(hào)括起來的參數(shù)類型列表和返回值類型。

//無參、無返回值的函數(shù)類型(Unit 返回類型不可省略)
() -> Unit
//接收T類型參數(shù)、無返回值的函數(shù)類型
(T) -> Unit
//接收T類型和A類型參數(shù)、無返回值的函數(shù)類型(多個(gè)參數(shù)同理)
(T,A) -> Unit
//接收T類型參數(shù),并且返回R類型值的函數(shù)類型
(T) -> R
//接收T類型和A類型參數(shù)、并且返回R類型值的函數(shù)類型(多個(gè)參數(shù) 同理)
(T,A) -> R
//復(fù)雜函數(shù)類型
(T,(A,B) -> C) -> R

當(dāng)顯示聲明lambda的函數(shù)類型時(shí),可以省去lambda參數(shù)列表中參數(shù)的類型,并且最后一行表達(dá)式的返回值類型必須與聲明的返回值類型一致:

val min:(Int,Int) -> Int = { x,y ->
    //只能返回Int類型,最后一句表達(dá)式的返回值必須為Int
    //if表達(dá)式返回Int
    if (x < y){
        x
    }else{
        y
    }
}

二.帶接收者的lambda表達(dá)式

http://www.itdecent.cn/p/791758395264

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容