けいじゅ@やっと自オフィス.日本ラショナルです.

In [ruby-dev :00220 ] the message: "[ruby-dev:220] Re: Class#eval [Re:
ftplib.rb revision 1.4] ", on Aug/22 17:48(JST) keiju / bc.mbn.or.jp (石
塚圭樹) writes:

>>この場合はそうですが,「全く同じ」というと全く同じなんですか? 
>>いや,すべてのケースについて検討していないので違うかどうか知
>>らないんですけど.
>
>そういわれると自身をなくしますが... 同じじゃないかなあ...

だと思っていたのですが, やはり動作がことなっていますね.

class Foo
  def Foo.foo
    eval "def baz ..."
  end
end

class Bar < Foo
end

Bar.foo

とすると, Object#eval(private)が呼ばれたとすると, Foo#baz が定義されま
すが. Class#evalでは, Bar#bazが定義されることになります.

どっちの動作も一理あると思うんですが, やはり間違いやすいので, 名前を変
えた方が良いんじゃないでしょうか?

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju / bc.mbn.or.jp <<---