【学習kotlinシリーズ】関数オブジェクト

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

Qiitaでことりん学習帳を発売しています!

関数オブジェクトとは

Kotlinは、関数を他の数値や文字列と同じように変数に代入したり、他の関数の引数として与えたり、関数の結果として与えることができる。関数オブジェクトとして使う時は、定義してある関数名の前に「::」をつける。

// 関数を定義する
fun square(i: Int): Int = i * i

fun main(args: Array<String>){

    // 関数オブジェクトを代入する
    val s = ::square

    // 関数オブジェクトを表示する
    println(s)

    // 関数オブジェクトを実行する
    println(s(2))

実行結果

fun square(kotlin.Int): kotlin.Int
4

関数オブジェクトを代入したsで関数が実行できていることが分かる。

関数オブジェクトの型

関数オブジェクトにも型がある。上の例のsquare関数の関数オブジェクトの型は、

(Int) -> Int

となる。square関数がInt型の引数を1つ受取り、Int型の値を返すからだ。一般的に、関数オブジェクトの型は

(引数の型1, 引数の型2, ) -> 返り値の型

が関数オブジェクトの型となる。

Related posts

コメントを残す