0

我定义了以下类

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方法吗?或者它是否试图分配一个局部变量?在任何一种情况下,为什么它会给出它给出的错误消息?

4

0 回答 0