因为时间很短,所以内容不是很复杂,写一个有价值的小知识,主要是为了保持每日学习和写作的习惯,大作还是会写到相关的主题里面,尽量做到周更。敬请关注本人的主要作品集:
为了能够最大限度的保证文章的质量,日更主要采用翻译的方法来完成。本系列将主要翻译Kotlin官网的内容。具体的地址
https://kotlinlang.org/docs/home.html
二十一, 函数-Lambda表达式-调用lambda
1, 自行调用
Lambda表达式可以通过在大括号{} 后面添加圆括号(), 并在圆括号中包含任何参数来自行调用一个Lambda:
println({ string: String -> string.uppercase() }("hello"))
2, 尾调用
正如您已经看到的,如果lambda表达式是唯一的函数参数,则可以去掉函数圆括号()。如果lambda表达式作为函数的最后一个参数传递,则该表达式可以写在函数圆括号() 之外。在这两种情况下,此语法都被称为尾调用lambda。
例如,.fold() 函数接受一个初始值和一个操作:
// The initial value is zero.
// The operation sums the initial value with every item in the list cumulatively.
println(listOf(1, 2, 3).fold(0, { x, item -> x + item })) // 6
// Alternatively, in the form of a trailing lambda
println(listOf(1, 2, 3).fold(0) { x, item -> x + item }) // 6
我们的下一步是了解Kotlin的class
译者备注
- ()是一个操作符,对应于invoke函数,因此foo() 等价于foo.invoke()
网友评论