Ruby的attr_accessor vs setter方法vs局部变量

时间:2014-10-07 20:35:03

标签: ruby attr-accessor

我定义了以下类

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

0 个答案:

没有答案