定义

  1. Lambda表达式是定义匿名函数的简单形式。由于Lambda表达式避免了在抽象类和接口中编写明确的函数声明,进而也避免了类的实现部分,因此十分有用
  2. 由于在java中并不能传递函数,所以我们的思想很难想到什么情况下可以传递参数,些函数的时候,是否可以将他的某个参数设置为函数参数

    拖尾 lambda 表达式

    在 Kotlin 中有一个约定:
    如果函数的最后一个参数是函数,那么作为相应参数传入的 lambda 表达式可以放在圆括号之外:
    1. val product = items.fold(1) { acc, e -> acc * e }
    这种语法也称为拖尾 lambda 表达式。
    如果该 lambda 表达式是调用时唯一的参数,那么圆括号可以完全省略:
    1. run { println("...") }

参考资料

  1. Kotlin-Android世界的一股清流-Lambda表达式 - 简书