u16suzuの blog

日々学んだことのメモブログです。

オブジェクトのパラメーターとメソッドの引き数名が同じ時は、メソッドの引数が優先される

オブジェクトのパラメーターとメソッドの引き数名が同じ時は、メソッドの引数が優先される。

もしも、パラメーターを呼びたい時はselfをつける。

class Foo
  attr_accessor :name

  def bar(name)
    p name # => "aaa" 引数が優先されている
    p self.name # => "dog" パラメーターを呼びたい時はselfをつける
  end
end

f = Foo.new
f.name = "dog"
f.bar("aaa")

Rails書いていると、よくパラメーターと引数が同じケースがあって、

引数の名前に arg_とかつけてたけど、このことをうまく利用すれば全く必要ないことがわかった。