2 flat logo on transparent 256
2018-04-15

初心者・独学者向け|Rubyのinitializeメソッドとは

Man3213kn

プログラミング言語のRubyでクラス生成を行っている時によく出て来る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の解説記事

初心者・独学者向け|Rubyのハッシュ入門とよく使うメソッド

初心者・独学者向け|Rubyの配列処理の入門とよく使うメソッド

初心者・独学者向け|Rubyをプログラミングし始めた人に見て欲しい、Rubyの基本

前の記事
次の記事