看到一个例子,是有这个问题还是我理解不到位呢?
class LoadPaths # ... def initialize @paths = [] end def push(*paths) @paths.push(*paths) end def inspect p @paths end end a = LoadPaths.new x = a.push(1) x.push 2 a.inspect
认证高级PHP讲师
实例方法操作实例变量,有什么问题?
这样完全没有问题啊. 容易引起问题的是这种:
class A def count @count ||= 0 @count += 1 end end a = A.new a.count # => 1 a.instance_variable_set(:@count, 10) a.count # => 11
其中instance_variable_set可以修改对象内的实例变量 ~ ~ 当然, 也可以理解为 Ruby 的强大之处!!!
instance_variable_set
实例方法操作实例变量,有什么问题?
这样完全没有问题啊.
容易引起问题的是这种:
其中
instance_variable_set
可以修改对象内的实例变量 ~ ~当然, 也可以理解为 Ruby 的强大之处!!!