平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【ruby】attr_readerの使用方法について

rubyのプログラムで以下のようなものを作成するとする ・タイトルと価格を保存して、タイトルを表示させるプログラム 少しわかりにくいので、実際のrubyのコードを見ます。

class Book
  attr_reader :title, :price

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

book = Book.new("キングダム", 500)
puts book.title

# 結果
キングダム

今回テーマにしたいのが「attr_reader」についてです。
結論からいうとクラス外でインスタンス変数を読み出すことができるメソッドです

では同じプログラムから「attr_reader」を消すとどうなるか?
以下のようなエラーが出ます。

#`<main>': undefined method `title' for #<Book:0x00007fadfb035a10 @title="キングダム", @price=500> (NoMethodError)

titleが設定されていないという旨がでますね。簡単にいうと@titleが読み込めてないの 当然titleも読み込めないので表示されていないということになります。

まだ完璧に理解できていないので、こういった使い方をすると理解しておきます。