Lambda
是一个没有名字的函数。 Lambda
是用花括号{}
定义的,它将变量作为参数(如果有的话)和函数体。 函数体在变量(如果有)之后写入,后跟 ->
运算符。
lambda的语法
{ variable -> body_of_function}
在讨论学习lambda
之前,来看一个使用普通函数添加两个数字的简单示例。
一般函数:两个数字相加
在这个例子中,创建一个函数addNumber()
,它传递从main
函数调用的两个参数(a
,b
)。
fun main(args: Array){
addNumber(5,10)
}
fun addNumber(a: Int, b: Int){
val add = a + b
println(add)
}
执行上面示例代码,得到以下结果 -
15
Lambda函数:两个数字相加
上面的程序使用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)
}
Kotlin
执行上面示例代码,得到以下结果 -
15
在上面的程序中,创建一个lambda
表达式{s: Int -> println(s) }
,其返回类型为Unit
。 lambda
函数作为高级函数addNumber(5,10,myLambda)
中的参数填充。 函数定义中的变量mylambda
实际上是一个lambda
函数。 mylambda
的函数主体已经在lambda
函数中给出。
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-lambdas.html