まず、結論から。
宣言 | 読み取り | 書き込み |
---|---|---|
attr_reader | できる | できない |
attr_writer | できない | できる |
attr_accessor | できる | できる |
具体例
attr_reader
class Person
attr_reader :name
def initialize(name)
@name = name
end
end
person = Person.new("Taro")
puts person.name # => "Taro"
person.name = "Jiro" # => エラー!(書き込みできない)
attr_writer
class Person
attr_writer :name
def initialize(name)
@name = name
end
end
person = Person.new("Taro")
puts person.name # => エラー!(読み取りできない)
person.name = "Jiro" # => OK!
まとめ
Railsで使うならattr_accessor
になっちゃうから、あまり使わないよね。
い