【Scala】変数のスコープがわからなくなってきたのでテスト
例えば、これは、2と出力される。
val a = 1; { val a = 2 println(a) }
外側の変数は、見えないんだ。
次に、
val a = 1; { println(a) }
と書く。
外側のaが見えて、1と出力された。
つまり、同名の変数が定義されたとき、外側の変数が見えなくなるということか。
じゃあ、これは?
val a = 1; { println(a) val a = 2 println(a) }
感覚的に、1つ目は1と出力されて、2つ目は2と出力されるような気がしてたけど、1つ目のprintln(a)でコンパイルエラーだった。
とにかく、内側では、外側と同名の変数をつくると、後にも先にも内側しか見えなくなるみたいだ。