一个示例会解释这个问题:
输出结果将会是:
当`value`明显不为空时,为什么会出现此错误?是否有办法使其正常工作?
Val = Struct.new(:value) do
def inc
p value
value = value + 1
end
end
v = Val.new(1)
v.inc
输出结果将会是:
1
undefined method `+' for nil:NilClass (NoMethodError)
当`value`明显不为空时,为什么会出现此错误?是否有办法使其正常工作?
self
接收器的方法调用优先于一个局部变量,那么就没有办法调用该变量。 - sawa