LoginSignup
0
0

More than 5 years have passed since last update.

Rubyのインスタンス変数 僕の勘違い1

Last updated at Posted at 2018-09-02

Rubyのインスタンス変数、学び始めたばかりの頃は全然わかっていなかった。
その勘違いをサンプルコードとともにまとめてみた。

【勘違い】インスタンス変数はinitializeメソッドでしか定義できない

実際は、以下の様なことが可能。

class Engineer
  attr_accessor :name, :age

  def initialize(name)
    @name = name
  end

  def set_age(age)
    @age = age
  end
end

engineer = Engineer.new('aoki')
p engineer.name
engineer.set_age(35)
p engineer.age

実行結果

"aoki"
35

initializeメソッド内では定義していない@ageという変数を
別のset_ageというメソッドを使って定義している。

結論

あくまで、新規インスタンス生成時にインスタンス変数を定義したい時にinitializeメソッド内に書く。新規インスタンス生成時でなくてもいいなら、別のインスタンスメソッドを使って定義してもいいい。

0
0
0

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
0
0