1

クラス変数 @@my_class var は、Ruby 1.9.1 では instance_eval されたオブジェクトのコンテキストで検索されるようになりましたが、Ruby 1.8.6 ではそうではありませんでした。

Ruby 1.9.1 の instance_eval の動作のその他の違いは何ですか?

4

2 に答える 2

1

それらをすべてリストすることはできませんが、定数ルックアップにいくつかの変更があることは知っています。1.8 では、定数ルックアップは呼び出し元のスコープにありましたが、1.9 ではブロックのスコープにありました。

FOO = "hi"

class Something
  FOO = "bye"

  def self.handle(&block)
    instance_eval(&block)
  end
end

p Something.handle { FOO }
# "hi" on 1.8, "bye" on 1.9
于 2009-08-05T01:18:42.393 に答える
0

[少なくとも現在は]自分自身も戻らないと思います。

于 2009-08-12T18:05:23.230 に答える