0
0

More than 3 years have passed since last update.

initializeメソッドにて行う最もベーシックな初期化

Posted at

まずinitializeメソッドとは、Rubyでクラス名.newでインスタンスを生成したときに呼び出されるメソッドで、インスタンスの生成と同時に実行したい処理を記述します。
このとき、使用するインスタンス変数は全てこちらで初期化が必要です。

initializeメソッドの書き方

例えば、このように初期化の時点で代入してしまうものに関しては分かりやすいと思います。

class ClassName
  def initialize
    @colors = ["black", "white", "gray", "red", "blue"] # 初期化の時点で値を代入している
  end

  def choose_color
    @colors.sample
  end
end

ただ、このように後から代入することが決まっていて、初期化時点では空の値の場合はどうしたら良いのか↓

class ClassName
  def initialize
    # どう書けば良い?
  end

  def write_review
    puts "タイトルを入力してください"
    @title = gets.chomp  # 初期化の時点では空、write_reviewメソッドを呼び出してから値を代入する
  end
end

こうします↓

class ClassName
  def initialize
    @title = "" 
  end

  def write_review
    puts "タイトルを入力してください"
    @title = gets.chomp
  end
end

ここから言えることはインスタンスを生成した際に代入できるのであればそうでよいが、実行後に値が代入されるのであれば、もっともベーシックな リテラルで初期化をする必要があるということです。
基本形は以下です。

class ClassName
  def initialize
    @string = ''
    @integer = 0 # or nil
  end
end
0
0
0

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
0