Kotlin:何时以及如何使用Lambda表达式

我最近一直在为我的Android项目转向Kotlin,并对Lambdas有所了解。 当我们将Java文件转换为Kotlin文件时,我们看到许多lambda表达式。

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

在Android上下文中的具体答案将是有帮助的。

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

lambda是一个匿名函数。 它允许你写入而不用命名它们。

高阶函数是一个函数,它将另一个函数作为参数(通常以lambda表达式传递) 返回一个作为结果。

很难告诉你什么时候应该使用lambda。 正如已经看到的,高阶函数可能是主要的用例。 将“应该做的事”传递给另一个功能是一个很好的方法。 许多标准函数都使用这个。 一个简单的例子是对一个集合的foreach

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

另外一个找到lambdas的好地方就是像Anko图书馆一样的DSL。 这些构建也大量使用lambda。