匿名関数

匿名関数

本体の指定は2種類ある

  • 式の代入
  • ブロックの指定

式の代入

fun(a: Int, b:Int):Int = a + b

この場合は、代入を使うことができない

// Assignments are not expressions, and only expressions are allowed in this context
ints.forEach(fun(v) = sum += v)

ブロックの指定

ブロックを指定する場合は、内部で代入が可能。

var sum = 0
ints.forEach(fun(v) {
    sum += v
}

関連

ラムダ式とクラスによる関数型の実装 - あるマのメモ書き