android - Kotlin : When and How Should One Use Lambda Expressions

标签 android lambda kotlin

我最近一直在为我的 Android 项目转向 Kotlin,但在理解 Lambdas 时遇到了问题。当我们将 Java 文件转换为 Kotlin 文件时,我们会看到许多 lambda 表达式。

何时以及如何使用 lambda 函数?另外,高阶函数和 lambda 函数/表达式有什么区别?

专门针对 Android 的回答会很有帮助。

最佳答案

When and how should one exactly use a lambda function? Also, what is the difference between a higher order function and a lambda function/expression?

lambda 是一个匿名函数。它允许您在不命名函数的情况下编写函数。

higher-order 函数是将另一个函数作为参数的函数(通常作为 lambda 传递)返回一个作为结果。

很难告诉您什么时候真正应该使用 lambda。如前所述,高阶函数可能是主要用例。这是将“应该做什么”传递给另一个函数的好方法。许多标准功能确实使用它。一个简单的例子是集合上的 forEach:

listOf(1,2,3).forEach{
   //tell what to do with each element in this lambda
}

也是查找 lambda 的好地方是 DSLs喜欢 Anko图书馆包括一个。这些构造还大量使用了 lambda。

关于android - Kotlin : When and How Should One Use Lambda Expressions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47110879/

相关文章:

java - 地理围栏在 Kotlin 中不起作用

android - 无法在 Android Studio 中更改目标 SDK

android - 解码bitmapfactory两次有什么用?

c++ - 导致运行时执行的 constexpr 仿函数中的成员

c# - 替换表达式树中的类型

java - 为什么 "return"在 Kotlin 中可以返回 "return"?

android - Kotlin 使用 Any is xxx || 调用带参数函数任何 yyy 都不起作用

java - 使用 Gson 填充 Kotlin 数据类

android - Android 增强现实应用程序的图像识别

java - 在单个 lambda 表达式中将元素添加到不同的集合