attr_accessorを使いゲッター・セッターを簡単に定義

Rubyでユーザークラスを作る場合、次のように書くことができます。

Rubyのゲッター・セッター

class User
  def name=(name)
    @name = name
  end

  def name
    @name
  end
end

1つめのメソッドは、引数で受け取ったデータをインスタンス変数@nameに代入します。インスタンス変数に代入するメソッドのことをセッターと呼びます。
またnameメソッドは設定した@nameを返します。このようなインスタンス変数の中身を参照するためのメソッドをゲッターと呼びます。

attr_accessorを使った書き方

上記の例ではセッター、ゲッターをそれぞれ定義しました。しかし、Rubyにはこれらをより簡単に定義するための便利なメソッドが用意されています。それがattr_accessorです。
さっそくattr_accessorで書き直してみましょう。

class User
  attr_accessor :name
end

これでセッターとゲッターが一度に定義できてしまいます。
実行する際は次のように使います。

>user = User.new
>user.name = "山田太郎"
>user.name
=> "山田太郎"

とても便利ですし、無駄なコードも増えないので覚えておきたいメソッドですね。