【学習kotlinシリーズ】クロージャ
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関数内の変数を参照できていることがわかる。
ディスカッション
コメント一覧
まだ、コメントがありません