技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

引数にデフォルト値を指定する方法

Rubyではメソッドの引数に過不足があるとエラーが発生してしまいます。

例)

def favorite(sport)
  if sport=='soccer'
    '私もサッカーが好きです'
  else
    '好きなスポーツは私と違います'
  end
end

引数が少ない

favorite
#=>ArgumentError:wrongnumberofarguments(given0,expected1)

引数が多い

favorite('baseball', 'basketball')
#=>ArgumentError:wrongnumberofarguments(given2,expected1)

引数にデフォルト値を指定する方法

def メソッド(引数1=デフォルト値1,引数2=デフォルト値2)
  #必要な処理
end

先ほどのメソッドに引数を指定してみましょう。

def favorite(sport = 'soccer')
  if sport=='soccer'
    '私もサッカーが好きです'
  else
    '好きなスポーツは私と違います'
  end
end

こうすると、引数を指定しなくてもOK

favorite
#=>'私もサッカーが好きです'