ラムダ式

関数リテラルの一つ 他には、匿名関数が存在する。

構文

{ 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" }

参照

関数リテラルの特徴について

関数リテラルまとめ - あるマのメモ書き