####セッターとゲッター
user.rb
class User
def name=(name) #セッターを定義
@name = name
end
def name #ゲッターを定義
@name
end
end
上記の一つ目のdef内で「name=」というメソッドを追加している
これはインスタンス変数を代入するためのメソッドでセッターと呼ぶ。
>user = User.new
>user.name = "吉田沙織"
=>"吉田沙織"
これによりインスタンス変数に名前を代入することが可能になった。
また二つ目のdef内ではインスタンス変数の内容を参照するためのメソッドを作成している。
これをゲッターと呼ぶ
>user.name
=> "吉田沙織"
これにより名前を設定し,設定した名前を返すことができるようになった。
####ゲッターとセッターをもっと簡単に定義する
Rubyではゲッターセッターを定義するために、上記のコードのような機械的な記述をする必要がない。
そのためにattr_accessorというメソッドを使う
書き方は以下の通りである
class User
attr_accessor :name
end
非常に簡単に記述できる。