下面的代码导致我的问题:红宝石增量(+ =)引发错误未定义的方法 '+' 的零:NilClass
class Foo
def initialize(n=0)
@n = n
end
attr_accessor :n
def inc
n+=1
end
end
调用Foo.new.inc
提高NoMethodError: undefined method '+' for nil:NilClass
调用Foo.new.n
回报0
为什么Foo.new.inc
提出错误?我可以做Foo.new.n+=1
没有问题。
那么用'@ n'呢?或者'self.n'? – Ryan
'n + = x'扩展为'n = n + x',其中* n被绑定为局部变量*,因为它出现在左侧。 – user2864740