ラムダ式
関数リテラルの一つ 他には、匿名関数が存在する。
構文
{ param1: Type1, ... -> // 本体 式1 式2 }
- パラメーター宣言部:
->
の左側部分 - 本体:
->
以降 - 返り値: 本体の最後の式の結果, voidの場合は、Unitが返り値となる
パラメーターの省略
パラメーターが存在しない場合は、パラメーター宣言部を省略できる
{ println("Hello World") }
トレーリングラムダ
関数のパラメーターの最後が関数リテラルを受け取れる場合は、()
外に、ラムダ式を出すことができる
val product = items.fold(1) { acc, e -> acc * e }
it
暗黙のシングルパラメーター名。
パラメーターが一つの場合は、パラメーター宣言を省略して、it
を使用することができる
ints.filter { it > 0 }
パラメーターの分割代入
Pair
型は、分割代入することができる
map.mapValues { (key, value) -> "$key: $value" }
参照
関数リテラルの特徴について