Question

J'ai remarqué que les variables de classe @@ my_class var sont maintenant recherchées dans le contexte de l'objet instance_eval'd dans Ruby 1.9.1, alors que ce n'était pas le cas dans Ruby 1.8.6.

Quelles sont les autres différences de comportement d’instance_eval pour Ruby 1.9.1?

Était-ce utile?

La solution

Je ne peux pas tous les énumérer, mais je sais qu'il y a des changements dans la recherche constante. Dans 1.8, la recherche constante était dans la portée des appelants, alors qu'elle se trouvait dans la portée des blocs dans 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

Autres conseils

Je pense que ça [au moins actuellement] ne revient pas, non plus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top