为什么我的attr_accessor正在努力获取而不是为了设置?

时间:2018-03-27 01:40:25

标签: ruby

ruby​​版本:2.3.4

我是Ruby的新手,无法弄清楚为什么以下代码不会更新我的变量。

class Blah
  attr_accessor :update_me

  def initialize
    @update_me = 6
  end

  def addy
    puts update_me
    if update_me == nil
      update_me = 1
    else
      update_me += 1
    end
  end

end

这是我的输入和来自irb的结果

> a = Blah.new
 => #<Blah:0x007fdcfe819dd0 @update_me=6>

> a.addy
6
NoMethodError: undefined method `+' for nil:NilClass
  from (irb):35:in `addy'
  from (irb):42
  from /Users/tracy/.rvm/rubies/ruby-2.3.4/bin/irb:11:in `<main>'

在我的addy方法中,它清楚地看到update_me变量的初始值为6,并且它按预期传递if == nil语句,但是当它尝试更新值时,我得到一个nil:NilClass错误。我觉得这里有一些根本性的误解。

0 个答案:

没有答案
相关问题