LoginSignup
0
1

More than 3 years have passed since last update.

attr_accessorについて

Last updated at Posted at 2020-04-01

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  

ここまで省略することができる。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1