ラムダ式にいろいろな書き方があるようなのでまとめてみました。
基本の形
var arr = arrayOf(1, 2, 3, 4)
arr.forEach({n:Int -> println(n)})
引数の型が推論できる場合は省略して以下のようにも書けます。
var arr = arrayOf(1, 2, 3, 4)
arr.forEach({ n -> println(n) })
高階関数の最後の引数がラムダ式なら、ラムダ式を高階関数のカッコの外に出せる
var arr = arrayOf(1, 2, 3, 4)
arr.forEach() { n -> println(n) }
普通に関数宣言してるみたいで少し違和感...
高階関数の唯一の引数がラムダ式なら、高階関数のカッコを省略可能
var arr = arrayOf(1, 2, 3, 4)
arr.forEach{ n -> println(n) }
これはAndroidアプリ開発でよく見ます。
ラムダ式の引数が単一なら、その引数を暗黙的な引数itで受け取ることができる
var arr = arrayOf(1, 2, 3, 4)
arr.forEach{ println(it) }
このit初めて見たときすごく戸惑った思い出