今回は、initialize
メソッドについてについて解説します。
initializeメソッドとは?
initialize
は特殊なメソッドで、インスタンスを初期化したい処理が発生する場合に使います。
そのため、必要がない場合は記載する必要はありません。
では、何が嬉しくなるかということを説明します。
initializeを定義した場合
まず、下記のサンプルコードを見てください。
class Animals
def initialize(name)
@name =name
end
def hello
"#{@name}が鳴きました"
end
end
animals = Animals.new('象').hello
p animals
#"象が鳴きました"
上記コードで Animalsクラス
を作成する際に、象を引き渡し .hello
でインスタンスメソッドを実行します。
そうすると「象が鳴きました」と出力されます。
インスタンス、クラスの概念が分かりきっていない方は
まぁこんなものかという感じで、頭に入れておいて下さい。
initializeを定義せずに同じ動作をするコード
class Animals
def name=(name)
@name = name
end
def hello
puts "#{@name}が鳴きました"
end
end
animals = Animals.new
animals.name = '象'
p animals.hello
#"象が鳴きました"
initializeを実行しない場合は、
- クラスを新規作成
- インスタンスメソッドのnameへ引数を設定
- pメソッドで表示
鳴き声だけを表示させるなら、これだけでもいいかもですが、
複数の処理が発生した場合、「クラスをnewしてインスタンスメソッドへ引数を引き渡してという処理」を、各処理毎に毎回設定しなければいけません。
この手間を削減できるのが initializeメソッド
になります。
なかなか難しいメソッドですが、Railsではしっかりと使うメソッドにもなりますので、全て理解しきれないかもしれませんが、こういうものだという部分だけ理解しておくと良いでしょう。