けいじゅ@今はフリー(^^;;です.

ローカルクラス(モジュール定義)に関して問題と思われるものを発見しました.

以下のプログラムを見て下さい:

class Bar
  def Bar.bar
    print "Bar1\n"
  end
end

class Foo
  class Bar
    def Bar.bar
      print "Bar2\n"
    end
  end
end

Bar.bar

意図としては, 

  Baz
  Foo
  Foo::Baz

の3つのクラスを定義しているつもりなのですが, 実際に実行してみると:

  Baz
  Foo

だけが定義され, Foo::Baz部分はBazの再定義となっています. class Bazは
Bazがすでに定義されていると, それを再定義する仕様になっていますので, 
仕様上はこの動作で正しいのですが, これだとローカルクラスを定義する意味
がほとんどなくなってくると思います.

どう思いますか?

__
.........................................石塚 圭樹@今はフリー(^^;;...
------->>また, アドレス変わりました!! e-mail: keiju / bc.mbn.or.jp <<---