{Kotlin学习日记}Day21 Koan第五关

大家好,我是William。今天是Koan第五关,Lambdas,拉姆达。

https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Lambdas/Task.kt
上面是闯关链接。

Introduction

Lambdas

Kotlin supports a functional style of programming.
Read about higher-order functions and function literals (lambdas) in Kotlin.
Pass a lambda to any function to check if the collection contains an even number.
The function any gets a predicate as an argument and returns true if there is at least one element satisfying the predicate.

解:
Kotlin可以玩得起函数式编程,如果不熟悉Lambda,就先看看上面的链接,any是collection的标准函数,需要传递一个lambda表达式进去,返回布尔值。本题要求你编写一个检查是否包含偶数的lambda表达式。

答:
我喜欢用求余的方式来判定是否偶数。判定方式其实是不限的。

fun containsEven(collection: Collection): Boolean = collection.any { x -> x%2==0 }

小结

这里的lambda跟Java的有点不一样,起码多了一个大括号包含着,而且添加了很多机制,比Java要丰富很多。

你可能感兴趣的:({Kotlin学习日记}Day21 Koan第五关)