kotlin频道Kotlin入门

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

2017-06-07  本文已影响206人  next_discover

Kotlin最简单的入门教程——环境
Kotlin最简单的入门教程——基础类型(一)
Kotlin最简单的入门教程——基础类型(二)
Kotlin最简单的入门教程——类和继承
Kotlin最简单的入门教程——可见性修饰符,扩展,数据类,密封类
Kotlin最简单的入门教程——委托
Kotlin最简单的入门教程——神秘的Lambda
Kotlin最简单的入门教程——集合
Kotlin最简单的入门教程——关键字,操作符,异常,空指针
Kotlin最简单的入门教程——与Java互相调用

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 = 0
ints.filter { it > 0 }.forEach {
    sum += it
}
print(sum)

高阶函数

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

<br /><br />

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

Paste_Image.png

欢迎关注 微信公号

android频道
上一篇 下一篇

猜你喜欢

热点阅读