2012-03-25 3 views

答えて

6

犯人はこのコードの一部である:b = 2は、インスタンスのコンテキストで評価されているが

a.instance_eval do 
    b = 2 
end 

、それはセッターを呼び出すことはありません。代わりに、現在のスコープにbという新しいローカル変数を作成するだけです。設定者に連絡するには、あいまいさを解消するためにコードをさらに明確にする必要があります。

a.instance_eval do 
    self.b = 2 
end 
0

変更:

a.instance_eval do 
    self.b = 2 
end 
関連する問題