【学習kotlinシリーズ】クロージャ

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

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

Golangでのクロージャの通り、「ローカル変数内を参照している関数内の関数」のこと。相変わらずわかりづらい説明なので、実例で。

実際に書いてみる

//クロージャ
fun counter(): () -> Int {

    var count = 0

    // ラムダ式で記述
    return { count++ }
}

fun main(args: Array<String>){

    val c = counter()
    println(c())
    println(c())
    println(c())

}

実行結果

0
1
2

関数を実行するたびに関数内の変数が1ずつ増えていく。main関数内でcounter関数内の変数を参照できていることがわかる。

Related posts

コメントを残す