From: matz@... (Yukihiro Matsumoto) Date: 2001-03-03T16:19:16+09:00 Subject: [ruby-list:28459] Re: constant in module_eval まつもと ゆきひろです In message "[ruby-list:28441] constant in module_eval" on 01/03/03, Kenichi Komiya writes: |module_eval から見える定数についての質問です。 | | Foo.module_eval { | Bar = 'bar' | | def bar | Bar | end | } | | p Foo::Bar # => 'bar' | p Foo.new.bar # => uninitialized constant Bar (NameError) | |class Foo で普通に定義したときの連想で、Foo.new.bar に 'bar' を期 |待したのですが、どうしてこうなってしまうのでしょうか? 定数の参照は静的に決まるから(つまりmodule_evalの外側と同じも のを参照しているということ)。 でも、なんか変ですよね。 もうちょっと考えないといけないのかなあ。