逆引きKotlin

好きなタイミングで特定の処理を行う

好きなタイミングで特定の処理を行う


そういうとき、高階関数が便利です。

高階関数 - Wikipedia


## フォーマット

関数型の指定は、以下のように書きます。
    (引数の型[, 引数の型]...) -> 戻り値の型


## 使用例

#### 関数を引数として渡す

関数を引数として渡せば、振る舞いの定義だけすることが出来ます。

Ajaxのコールバックなどが好例です。

引数として関数オブジェクトを受け取るには、次のように書きます。

fun printResult(callee: (Int, Int) -> Int, val1: Int, val2: Int): String {
  val result = callee(val1, val2)
  return "Result : $result";
}

この例では、第一引数に関数を受け取るように定義しています。 受け取る関数は、第一、第二引数、戻り値ともにInt型を指定しています。



#### 関数を戻り値として受け取る

逆に関数オブジェクトを戻り値として受け取れば、好きなタイミングで 実行できます。
fun example2(val1: Int): (Int, Int) -> Int {
    return {x, y -> (x + y) % val1};
}

関数型には引数で受け取る場合と同じ型を指定しています。

返す関数は関数リテラルで、クロージャーを使用して引数として渡された値を使用するように書いています。

最終更新日時:2017年1月23日