attr_reader

attr_readerメソッドは、クラスやモジュールにインスタンス変数を読み出すためのアクセサメソッドを定義します。

 

class Book
  attr_reader :title, :price

  def initialize(title, price)
    @title = title
    @price = price
  end
end

book = Book.new("プロを目指す人のためのRuby入門", 3218)
puts book.title
$ プロを目指す人のためのRuby入門

このように変数定義をコンパクトにできる。

上記のコードをそれぞれメソッド定義すると、下記のように長くなる。

 

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

 def price @price end end book = Book.new("プロを目指す人のためのRuby入門", 3218) puts book.title

 

プログラマーは怠惰であれ!