看到一个例子,是有这个问题还是我理解不到位呢?
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
迷茫2017-04-22 09:00:46
这样完全没有问题啊.
容易引起问题的是这种:
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 的强大之处!!!