Lambda 函数

Lambda 函数是匿名函数,通常在函数调用期间创建以充当函数参数。它们由带有{braces}的周围表达式声明 - 如果需要参数,则将它们放在箭头 -> 之前。

{ name: String ->
    "Your name is $name" //This is returned
}

lambda 函数中的最后一个语句自动返回值

如果将 lambda 放在编译器可以推断类型的位置,则类型是可选的。

多个参数:

{ argumentOne:String, argumentTwo:String ->
    "$argumentOne - $argumentTwo"
}

如果 lambda 函数只需要一个参数,那么可以省略参数列表,而使用 it 来引用单个参数。

{ "Your name is $it" }

如果函数的唯一参数是 lambda 函数,则可以从函数调用中完全省略括号。

# These are identical
listOf(1, 2, 3, 4).map { it + 2 }
listOf(1, 2, 3, 4).map({ it + 2 })