attr_accessorとは?
attr_accessorについて理解が不十分であったので紐解きます。
attr_accessorはデータを代入するメソッド(setter)とデータを取り出せるメソッド(getter)を同時に定義できるメソッドである。これは省略形であり、いきなり覚えようとするとかえって混乱するので一個一個分解していく。
attr_accessor・setter/getterを使わずに定義する場合
class okashi
def name = (name) #どんな処理を行っているのか
@name = name → ・いわゆるsetterの部分
end お菓子クラスに名前という情報をセット
しますという処理。@を使用しているた
め、メソッドの中だけでなく外でも使用できる。
def name → #どんな処理を行っているのか
@user ・いわゆるgetterの部分
end お菓子クラスにセットされている
end @nameという情報を取り出す(ゲット)
しますの処理
oks = Okashi.new
#setterにnameの値をいれる
oks.name = "クッキー"
#getterを取り出す
puts oks.name
console上ではクッキーと表示される。これだと中の処理を一個一個細かく書いていかなければならない。これをsetter/getterを使って省略する。
setter/getterを使用して定義する場合
class okashi
attr_writer :name → setterの部分。この処理だけでクラスに
@nameの値をwrite(書き込む)こと
ができるようにする処理。
attr_reader :name → getterの部分。@nameという情報を取り出す
処理
end
oks = Okashi.new
#setterにnameの値をいれる
oks.name = "クッキー"
#getterを取り出す
puts oks.name
上記の処理を省略することでかなりわかりやすくなる。
このsetter getterの処理をさらに省略したものがattr_accessorである。
class okashi
attr_accessor :name
end
oks = Okashi.new
oks.name = "クッキー"
puts oks.name
ここまで省略することができる。