Kotlin最简单的入门教程——神秘的Lambda

来源:互联网 发布:网络女歌手唱的谁不是 编辑:程序博客网 时间:2024/05/18 03:24

Lambda 表达式

lambda 表达式总是被大括号括着, 完整语法形式的参数声明放在括号内,并有可选的类型标注, 函数体跟在一个 -> 符号之后。如果推断出的该 lambda 的返回类型不是 Unit,那么该 lambda 主体中的最后一个(或可能是单个)表达式会视为返回值。

例如:

val sum = { x: Int, y: Int -> x + y }

我们可以使用限定的返回语法从 lambda 显式返回一个值。否则,将隐式返回最后一个表达式的值。因此,以下两个片段是等价的:

ints.filter {    val shouldFilter = it > 0     shouldFilter}ints.filter {    val shouldFilter = it > 0     return@filter shouldFilter}

匿名函数

匿名函数看起来非常像一个常规函数声明,除了其名称省略了。其函数体 可以是表达式(如上所示)或代码块:

fun(x: Int, y: Int): Int = x + y
fun(x: Int, y: Int): Int {    return x + y}

Lambda 表达式或者匿名函数(以及局部函数和对象表达式) 可以访问其 闭包 ,即在外部作用域中声明的变量。 与 Java 不同的是可以修改闭包中捕获的变量:

var sum = 0ints.filter { it > 0 }.forEach {    sum += it}print(sum)

高阶函数

高阶函数是将函数用作参数或返回值的函数。



最后欢迎加入Kotlin QQ群,一起讨论学习:

Paste_Image.png

欢迎关注 微信公号

android频道

原创粉丝点击