我定义了以下类
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方法?或者它是否尝试分配局部变量?在任何一种情况下,为什么它会给出它给出的错误信息?