dev/mom0tomo

技術メモ

Rubyのattr_readerについて

読んだもの

ref.xaio.jp

学んだこと

attr_readerメソッドはアクセサメソッドを定義する。 アクセサメソッドとは、クラスやモジュールにインスタンス変数を読み出すためのメソッドである。 引数には、インスタンス変数名をシンボルか文字列で指定する。

下記はBookクラスにtitleメソッドとpriceメソッドを定義する例。beforeはattr_readerを使わない場合の書き方。

before

class Book
  def title
    @title
  end

  def price
    @price
  end
end

上の例をattr_readerを書き直すと、下記のようになる。

after

class Book
  attr_reader :title, :price
  
  def initialize(title, price)
    @title = title; @price = price
  end
end