selfについて学ぶ
self
現在のメソッドの実行主体。
self はその場所でのレシーバ(メソッドを呼び出されるオブジェクト)を返す。
インスタンスメソッドでの self は、そのクラスのインスタンスになる。
クラスメソッドでの self は、そのクラスになる。
メソッド内で他のメソッドを呼び出す場合は、暗黙的に self がレシーバとなる
ゲッターは self をつけなくても使えるが、 セッターは self をつけないと使えない
code:sample.rb
class User
attr_accessor :name
def initialize(name)
@name = name
end
def hello
end
def rename(new_name)
self.name = new_name
# name = new_name はローカル変数への代入とみなされる
end
end