LoginSignup
0

More than 1 year has passed since last update.

【初心者向け】Rubyのinitializeメソッド(初期化)とは?

Posted at

今回は、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を実行しない場合は、

  1. クラスを新規作成
  2. インスタンスメソッドのnameへ引数を設定
  3. pメソッドで表示

鳴き声だけを表示させるなら、これだけでもいいかもですが、

複数の処理が発生した場合、「クラスをnewしてインスタンスメソッドへ引数を引き渡してという処理」を、各処理毎に毎回設定しなければいけません。

この手間を削減できるのが initializeメソッド になります。

なかなか難しいメソッドですが、Railsではしっかりと使うメソッドにもなりますので、全て理解しきれないかもしれませんが、こういうものだという部分だけ理解しておくと良いでしょう。

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