📅  最后修改于: 2021-01-05 07:25:18             🧑  作者: Mango
Lambda是一个没有名称的函数。 Lambda用花括号{}定义,该花括号将variable作为参数(如果有)和函数 body。函数体写在变量(如果有)之后,然后是->运算符。
{ variable -> body_of_function}
在讨论lambda之前,让我们看一个使用普通函数将两个数字相加的简单示例。
在此示例中,我们创建一个函数addNumber() ,该函数传递从主函数调用的两个参数(a,b) 。
fun main(args: Array){
addNumber(5,10)
}
fun addNumber(a: Int, b: Int){
val add = a + b
println(add)
}
输出:
15
上面的程序将使用lambda函数重写如下:
fun main(args: Array){
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。在高级函数addNumber(5,10,myLambda)中,将lambda函数作为参数填充。函数定义中的变量mylambda实际上是lambda函数。 mylambda的功能(主体)已在lambda 函数。