专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

[译] Kotlin 揭秘:理解并速记 Lambda 语法

Android_开发者  · 掘金  · android  · 2018-08-07 01:45

正文

阅读 271

[译] Kotlin 揭秘:理解并速记 Lambda 语法

文章封面摄影: Stefan Steinbauer ,来自 Unsplash

在奥地利旅行期间,我参观了维也纳的奥地利国家图书馆。特别是国会大厅,这个令人惊叹的空间感觉就像印第安纳琼斯电影中的一些东西。房间周围的空间是这些门被装在架子上,很容易想象它们背后隐藏着什么样的秘密。

然而,事实证明,它们只是简单的图书馆。

让我们假设我们有一个应用程序来跟踪库中的书籍。有一天,我们想知道这个系列中最长和最短的书是什么。之后,我们编写代码,允许我们找到这两个:

val shortestBook = library.minBy { it.pageCount }val longestBook = library.maxBy { it.pageCount }
复制代码

完美!但这让我感到疑惑,这些方法是如何工作的? it 是怎么知道的,只是写了 it.pageCount ,到底该怎么做呢?

我做的第一件事就是定义 minBy maxBy ,这两者都是在 Collections.kt 。由于它们几乎完全相同,所以让我们来看看 maxBy ,它从 1559 行开始。

那里的方法是在 [Iterable](https://developer.android.com/reference/java/lang/Iterable) 接口上构建的,但是如果我们做一个小的重写来使用 [Collection](https://developer.android.com/reference/java/util/Collection) s,也许将一些变量的重命名变的更冗长,更容易理解:







请到「今天看啥」查看全文