🍣

Kotlin: 勉強メモ

2024/04/25に公開

ラムダ

書式:{ 引数 -> 処理 }

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を掛けたものが結果として返されます。

実行結果:

52倍にします10

Discussion