関数内で定義されたラムダやローカル関数は、外側の関数のローカル変数にアクセスできる。
クロージャーにより、外部からはアクセスできない
ローカルメソッドを作成することができる。
// 関数の外側からは、ローカル変数にはアクセスできない //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 }