稲葉です。

Yukihiro Matsumoto wrote:
> 
> まつもと ゆきひろです
> 
> In message "[ruby-list:15593] クラス定数について"
>     on 99/07/22, Takashi Nishimoto <g96p0935 / mse.waseda.ac.jp> writes:
> 
> |以下のプログラムを実行したのですが、
> |
> |ruby 1.3.5 (1999-07-15) [i586-linux]
> |test.rb:16: uninitialized constant Fixnum::Priority (NameError)
> |
> |と出てしまいます。Fixnum は Numeric のサブクラスなのになぜ Priority 定
> |数を参照できないのでしょうか?
> 
> それは::形式では定数は定義されたそのクラスでしか参照できない
> からです。

これはわかったのですが、「じゃclass_evalを使えばいいよね」と思って試し
たらblockの場合にうまくいきませんでした。

class Foo; FooConst = "foo"; end
class Bar < Foo; end
Bar.class_eval " p FooConst "
Bar.class_eval { p FooConst
}                                                   

最初のpは"foo"を返しますが、次のはuninitialized constantのエラーに
なったのですが、仕様でしょうか、バグでしょうか?
--
			稲葉 浩人  <inaba / st.rim.or.jp>