今回このinitializeメソッドについてについて解説します。
initializeメソッドとは
initializeは特殊なメソッドで、インスタンスを初期化したい処理が発生する場合に記載します。
その為必要がない場合は記載する必要はありません。
では、何が嬉しくなるかという事を説明します。
initializeを定義した場合
まず、下記のサンプルコードを御覧ください。
test.rb
class Animals
def initialize(name)
@name =name
end
def hello
"#{@name}が鳴きました"
end
end
animals = Animals.new('象').hello
p animals
#"象が鳴きました"
上記コードでAnimalsクラスを作成する際に象を引き渡し .helloでインスタンスメソッドを実行します。
そうすると象が鳴きましたと出力されます。
インスタンス、クラスの概念が分かりきっていない方は
まぁこんなものかという感じで、頭に入れておいて下さい。
initializeを定義せずにtest.rbと同じ動作をするコード
test2.rb
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をコーディングしていると時々利用するメソッドにもなりますので、全て理解しきれないかもしれませんが、
こういうものだという部分だけ理解していただければ幸いです。
Ruby・Railsの効率的な学習を。
RubyやRailsで、つまづいている方。学習が思うように進まない方。
はっきり言って、効率が悪いです!
本気でエンジニアになりたいなら、自己投資して、最短でエンジニアになるべきです。
『受講料が高い...?』 → 費用対効果に目を向けて下さい。
受講料はすぐに回収できます。
まずは、無料体験で実際のカリキュラムを体験してみて下さい!
また、無料カウンセリングでは、現役エンジニアに気になることをたくさん質問しましょう。