関数の中で宣言された関数または変数は、その関数の中からのみ アクセスできます。
// トップレベル
var a = 10, b = 20, c = 30 ;
func func2 () {
println ("Hello") ;
}
func func1 () {
// この時点では a, b, c ともトップレベルの a, b c を参照することになる。
println (a," ",b," ",c) // この出力結果は 10 20 30 となる
var a = 100 ;
// この時点から、a は、func1 で定義された a が 参照されるようになる。
// func2 は、トップレベルで定義された関数を参照することになる。
println (a," ",b," ",c) // この出力結果は 100 20 30 となる
func func2 () {
println (a," ",b," ",c) // この出力結果は 100 20 30 となる
var b = 200 ;
// ここでは、b は func2 で定義された b を、a は、func1 で定義された b を
// c は、トップレベルの c を参照することになる。
println (a," ",b," ",c) // この出力結果は 100 200 30 となる
var b = 2000 ;
// b が再び定義しなおされた。
println (a," ",b," ",c) // この出力結果は 100 2000 30 となる
}
// この時点では、再び、func1 のスコープになる
println (a," ",b," ",c) // この出力結果は 100 20 30
// func2 は、func1 の中で宣言されている func2 となる。
func2 () ;
}
// この時点では、トップレベルのスコープになる。
println (a," ",b," ",c) // この出力結果は 10 20 30
func2 (); // これは、トップレベルの func2 を参照