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
这让我很担心。