🍣
Kotlin: 勉強メモ
ラムダ
書式:{ 引数 -> 処理 }
fun double(x: Int, doSomething: (Int) -> Unit): Int {
doSomething(x) // ①
return x * 2 // ②
}
この場合、次のことがシグネチャから読み取れます。
- 関数
double
はInt型のx
と関数型doSomething
を引数に持ち、Int型を返す関数であること - 関数
double
の第二引数である関数型doSomething
はInt型の引数を持ち結果としてUnitを返すこと
関数double
を呼び出すときは以下のようになります。
double(5, { print("${it}を2倍にします") })
it
は暗黙の引数で、引数が単一の場合その引数を参照します。
第二引数であるdoSomething
は、Int型を引数に持ちUnitを返す関数であれば何でも構いません。
補足: このときdoSomething
はこのように定義されています。
doSomething(x: Int){
print("${x}を2倍にします")
}
① 関数double
ではまず、第二引数の関数に第一引数の値を引数として渡します。
② 関数double
の返り値は第一引数に2を掛けたものが結果として返されます。
実行結果:
5を2倍にします10
Discussion