Kotlin Lambda函數
Lambda
是一個沒有名字的函數。 Lambda
是用花括號{}
定義的,它將變量作爲參數(如果有的話)和函數體。 函數體在變量(如果有)之後寫入,後跟 ->
運算符。
lambda的語法
{ variable -> body_of_function}
在討論學習lambda
之前,來看一個使用普通函數添加兩個數字的簡單示例。
一般函數:兩個數字相加
在這個例子中,創建一個函數addNumber()
,它傳遞從main
函數調用的兩個參數(a
,b
)。
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) }
,其返回類型爲Unit
。 lambda
函數作爲高級函數addNumber(5,10,myLambda)
中的參數填充。 函數定義中的變量mylambda
實際上是一個lambda
函數。 mylambda
的函數主體已經在lambda
函數中給出。