Pergunta

notei que variáveis ??de classe @@ my_class var são agora olhou para cima no contexto do objeto instance_eval'd em Ruby 1.9.1 que este não era o caso em Ruby 1.8.6.

Quais são algumas outras diferenças no comportamento de instance_eval para Ruby 1.9.1?

Foi útil?

Solução

Eu não posso enumerá-los todos, mas eu sei que há algumas mudanças na pesquisa constante. Em 1.8, a pesquisa constante era no âmbito chamadores, enquanto ele está no escopo blocos em 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

Outras dicas

Eu acho que [pelo menos atualmente] não retorna auto, qualquer um.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top