====== クロージャー ======
関数内で定義されたラムダやローカル関数は、外側の関数のローカル変数にアクセスできる。
クロージャーにより、外部からはアクセスできない
ローカルメソッドを作成することができる。
// 関数の外側からは、ローカル変数にはアクセスできない
//fun outer(){
// count += 1000
//}
fun main(){
var count=0
// ラムダは、宣言されている関数のローカル変数にアクセスできる。
val ints = listOf(1,2,3)
ints.forEach{
count += it
}
println(count)
>>> 6
// 無名関数は、宣言されている関数のローカル変数にアクセスできる。
val function =fun(){
count += 10
}
function()
println(count)
>>> 16
// 内部関数は、宣言されている関数のローカル変数にアクセスできる。
fun inner(){
count += 100
}
inner()
println(count)
>>> 116
}