Attribute Accessor(Reader Writer) in Ruby

Ruby中的存取器(类似其他语言中的getter and setter)

存取器帮我们简化存取器的定义,如果没有这样的语法,我们要这样来定义:

class Hello
  def name
    @name
  end

  def name=(value)
    @name = value
  end
end

当有了如下的存取器之后:

定义 意义
attr_reader :name 只读(定义name方法)
attr_writer :name 只写(定义name=方法)
attr_accessor :name 读写(定义以上2个方法)

就可以直接用一句话代替上面的2个方法:

class Hello
  attr_accessor :name
end