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 => "山田太郎"
とても便利ですし、無駄なコードも増えないので覚えておきたいメソッドですね。