1
1

More than 3 years have passed since last update.

【Ruby】インスタンス変数に関する備忘録

Last updated at Posted at 2020-04-15

classでよく見かけるこいつら、整理してみた

①attr_accessorを利用した場合

attr_accessor :name
def initialize(name)
  @name = name
end
#----略----

②「@」を用いたインスタンス変数を用いる場合

def initialize(name)
  @name = name
end

#----略----

def name
  @name
end
def name=(val)
  @name = val
end

①と②は同じ意味である。

ちなみにdef name=(val) とは

インスタンス名.name = "hogehoge"

のように、インスタンス変数nameへの代入式を書いた時に呼び出されるメソッド。

そもそもattr_accessorとは

getterとsetterを同時に定義してくれている。
(getter、setterについてはこちらの記事をみた。↓)
https://kossy-web-engineer.hatenablog.com/entry/2018/10/01/194217
つまりこのメソッドを使わずに再現しようとすると②のようになる。
Railsでもかなり重要な部類なのでインスタンス周りは丁寧に理解していきたい。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1