🦏
インスタンス変数とnewとinitialize
作成日:
2022/01/13
2
Ruby on Railsのインスタンス変数という言葉を調べたら芋づる式に色々理解できた。
インスタンス変数というのは@で始まり、class内で共通して使える変数。
class Car
def setName(str)
@name = str
end
def dispName()
print(@name, "\n")
end
end
car1 = Car.new()
car1.setName("TVR Griffith")
car2 = Car.new()
car2.setName("MG Metro 6R4")
car1.dispName
car2.dispName
// 実行結果
// TVR Griffith
// MG Metro 6R4
car1、car2、それぞれのオブジェクトに対して値を格納した場合、@nameは上書きされることなく異なる値を格納することができる。
newのinitializeを使えばさらに効率よく書ける。
class Car
def initialize(str)
@name = str
end
def dispName()
print(@name, "\n")
end
end
Car.new("TVR Griffith").dispName
Car.new("MG Metro 6R4").dispName
// 実行結果
// TVR Griffith
// MG Metro 6R4
さらに複数の引数を渡すことも出来るという。
class Car
def initialize(name, engine)
@name = name
@engine = engine
end
def dispSentence()
print(@name + "は" + @engine + "エンジン搭載です。\n")
end
end
Car.new("TVR Griffith", "V8").dispSentence
Car.new("MG Metro 6R4", "V6").dispSentence
// 実行結果
// TVR GriffithはV8エンジン搭載です。
// MG Metro 6R4はV6エンジン搭載です。
はい、そうです。私は英国車が好き。
参考資料:
インスタンス変数 - クラスの概念 - Ruby入門
【Ruby】newメソッドとinitializeメソッドの使い方【クラスとインスタンス】
JavaScriptとSassと英語が好き。