我定义了以下类
class MyClass
attr_accessor :my_var
def initialize
@my_var = 0
end
def increment
my_var = my_var + 1
end
end
但是如果我运行:
myObj = MyClass.new
puts myObj.increment # should output: 1
Ruby 给出了一个错误,尽管预期的输出应该是 1
错误信息:
undefined method `+' for nil:NilClass (NoMethodError)
编辑:
主要问题是,这条线在做什么:my_var = my_var + 1
是调用setter方法吗?或者它是否试图分配一个局部变量?在任何一种情况下,为什么它会给出它给出的错误消息?