Kotlin Lambda函數

Lambda是一個沒有名字的函數。 Lambda是用花括號{}定義的,它將變量作爲參數(如果有的話)和函數體。 函數體在變量(如果有)之後寫入,後跟 -> 運算符。

lambda的語法

{ variable -> body_of_function}

在討論學習lambda之前,來看一個使用普通函數添加兩個數字的簡單示例。

一般函數:兩個數字相加

在這個例子中,創建一個函數addNumber(),它傳遞從main函數調用的兩個參數(ab)。

fun main(args: Array<String>){  
    addNumber(5,10)  
}  
fun addNumber(a: Int, b: Int){  
    val add = a + b  
    println(add)  
}

執行上面示例代碼,得到以下結果 -

15

Lambda函數:兩個數字相加

上面的程序使用lambda函數重寫如下:

fun main(args: Array<String>){  
    val myLambda: (Int) -> Unit= {s: Int -> println(s) } //lambda function  
    addNumber(5,10,myLambda)  
}  
fun addNumber(a: Int, b: Int, mylambda: (Int) -> Unit ){   //high level function lambda as parameter  
    val add = a + b  
    mylambda(add) // println(add)  
}

執行上面示例代碼,得到以下結果 -

15

在上面的程序中,創建一個lambda表達式{s: Int -> println(s) },其返回類型爲Unitlambda函數作爲高級函數addNumber(5,10,myLambda)中的參數填充。 函數定義中的變量mylambda實際上是一個lambda函數。 mylambda的函數主體已經在lambda函數中給出。