문제

클래스 변수 @@ my_class var는 이제 Ruby 1.9.1의 instance_eval'd 객체의 맥락에서 위로 올라가는 반면 Ruby 1.8.6에서는 그렇지 않았습니다.

Ruby 1.9.1에 대한 instance_eval의 행동의 다른 차이점은 무엇입니까?

도움이 되었습니까?

해결책

나는 그것들을 모두 나열 할 수는 없지만 지속적인 조회에 약간의 변화가 있다는 것을 알고 있습니다. 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

다른 팁

나는 그것이 [적어도 현재] 자신을 반환하지 않는다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top