因为时间很短,所以内容不是很复杂,写一个有价值的小知识,主要是为了保持每日学习和写作的习惯,大作还是会写到相关的主题里面,尽量做到周更。敬请关注本人的主要作品集:
为了能够最大限度的保证文章的质量,日更主要采用翻译的方法来完成。本系列将主要翻译Kotlin官网的内容。具体的地址
https://kotlinlang.org/docs/home.html
十八, 函数-Lambda表达式-传递给另一个函数
将lambda表达式传递给其他函数,有一个很有用的的例子,那就是在集合上使用.filter() 函数:
val numbers = listOf(1, -2, 3, -4, 5, -6)
val positives = numbers.filter { x -> x > 0 }
val negatives = numbers.filter { x -> x < 0 }
println(positives)
// [1, 3, 5]
println(negatives)
// [-2, -4, -6]
- .filter() 函数接受lambda表达式作为谓词:
- { x -> x > 0 }获取列表中的每个元素x,并且只返回那些为正的元素。
- { x -> x < 0 }获取列表中的每个元素x,并且只返回那些为负数的元素。
如果lambda表达式是唯一的函数参数,则可以去掉函数圆括号() 。这是一个尾部lambda的例子,本章末尾将对此进行更详细的讨论。
另一个很好的例子是使用.map() 函数转换集合中的项:
val numbers = listOf(1, -2, 3, -4, 5, -6)
val doubled = numbers.map { x -> x * 2 }
val tripled = numbers.map { x -> x * 3 }
println(doubled)
// [2, -4, 6, -8, 10, -12]
println(tripled)
// [3, -6, 9, -12, 15, -18]
- .map() 函数接受lambda表达式作为谓词
- { x -> x*2 }获取列表中的每个元素x,并返回该元素乘以2。
- { x -> x*3 }获取列表中的每个元素x,并返回该元素乘以3。
网友评论