なひです. > From: Yukihiro Matsumoto [mailto:matz / netlab.co.jp] > Sent: Tuesday, May 11, 1999 12:05 PM > |class Foo > | Baz = 1; baz = 2 > | class Bar > | Baz = 3; baz = 4 > | p Baz, baz > | end > | p Baz, baz > |end > |p aFoo = Foo.new() > | > |において,Bazについてだけ > |「warning: already initialized constant Baz」と指摘する > |(ただしちゃんとスコープはネストする)のは, > |想定されている動作でしょうか. > > これは想定されている(そうしようと思ってそうなっている)動作で > す.ただし,「望ましい姿」とか「理想の姿」とかだと違うかも. 「そうしようと思ってそうなっている」点,理解しました. > 内側のクラス/モジュールは外側のクラスの定数が見えるので,同 > 名の定数を定義すると外側の定数を隠しちゃうんですよね.それを nested classの内側において,外側もある各種変数の見え方を整理すると, 大域変数 ... 見える & 共有 クラス定数 ... 見える & ネスト クラス変数 ... 見えない & ネスト(見えないんだからネストしてあたりまえ) ローカル変数 ... 見えない & ネスト(〃) なわけですよね.で, 「見える & ネスト」という点で特殊(他と違う)であり, また混同すると危険なこともあるため, 注意を喚起している,と理解しました. 現在のなひは,もっともな「注意」である,と感じます. # 考えが浅い > ^^;;