0
在下面的示例中,我重新打開Module
類並設置實例變量。如果它已經將這些實例變量用於別的東西,這可能會「破壞」這個類嗎?如何避免這種情況?打破重新打開的類
class Module
def fields
@fields ||= []
end
def foo name
fields << name
end
end
到目前爲止,我還沒有遇到任何類似於上述問題的問題。然而,我的下一個例子顯示了這可能是一個問題。
class Foo
def bar
@test = 1
end
def print
puts @test
end
end
class Foo
def oops
@test = 2
end
end
obj = Foo.new
obj.bar
obj.print #=> 1
# method that we added later sets instance variable
obj.oops #=> 2
obj.print
這讓我很擔心。