Kotlin教程:Lambda函数

2020-04-2020:43:01编程语言入门到精通Comments1,647 views字数 875阅读模式

Lambda是一个没有名字的函数。 Lambda是用花括号{}定义的,它将变量作为参数(如果有的话)和函数体。 函数体在变量(如果有)之后写入,后跟 -> 运算符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

lambda的语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

{ variable -> body_of_function}

在讨论学习lambda之前,来看一个使用普通函数添加两个数字的简单示例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

一般函数:两个数字相加文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

在这个例子中,创建一个函数addNumber(),它传递从main函数调用的两个参数(ab)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

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

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

15

Lambda函数:两个数字相加文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

上面的程序使用lambda函数重写如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

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)  
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

15

在上面的程序中,创建一个lambda表达式{s: Int -> println(s) },其返回类型为Unitlambda函数作为高级函数addNumber(5,10,myLambda)中的参数填充。 函数定义中的变量mylambda实际上是一个lambda函数。 mylambda的函数主体已经在lambda函数中给出。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-lambdas.html文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18265.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/18265.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定