Ruby on Rails

Ruby on Rails メソッドのデフォルト引数(kinds = @name)

class Food

  def initialize
    @name = 'りんご'
  end

  def fruit(kinds= @name)
    puts "#{kinds}を注文しました"
  end
end

food = Food.new
food.fruit('みかん') 
food.fruit

Ruby on Railsを勉強していて、これなんだっけとなったものをメモしておきます。

上記のコードで説明すると、

def fruit(kinds= @name)
fruitメソッドに引数が渡されていればその引数の値にする。
引数がなければデフォルトの値を入れておく。


ちなみにinitializeメソッドをクラス内に記述した場合は、オブジェクトが作成される時に自動的に呼び出されます。つまり@nameにりんごを入れておくことでデフォルトはりんごになる。

food = Food.new
オブジェクトが作成して、現在のデフォルト値はりんごになっている。

food.fruit(‘みかん’)
fruitメソッドにみかんという引数が渡されているので、りんごからみかんに変更になり
みかんを注文しました。と返ってくる。

food.fruit
その後、fruitの引数に何も渡されていないので、デフォルトのりんごになっている。結果、
りんごを注文しました。と返ってくる。

最新情報をチェックしよう!