Frage

ich die Klassenvariablen @@ my_class var bemerkt werden nun im Rahmen des instance_eval'd Objekt in Ruby 1.9.1 nachgeschlagen, während dies in Ruby 1.8.6 nicht der Fall war.

Was sind einige andere Unterschiede im Verhalten von instance_eval für Ruby 1.9.1?

War es hilfreich?

Lösung

kann ich Liste sie nicht alle, aber ich weiß, dass einige Änderungen in konstantem Nachschlag geben. In 1,8, war konstant Nachschlag in dem Anrufer Umfang, während es in den Blöcken Umfang in 1,9 ist.

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

Andere Tipps

Ich denke, es [zumindest derzeit] nicht selbst zurückkehrt, auch nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top