🚀
デフォルト値付きの引数があるメソッド(Ruby)
はじめに
今回はデフォルト値付きの引数について説明していきます!
メソッドの基礎を身につけた上でしっかり見ていきましょう!
メソッドについて、最初から学びたい方は、以下を参考にしてください!
Rubyにおけるメソッドの定義
Ruby のメソッドの戻り値について
引数の過不足によるエラー
Rubyではメソッドを呼び出す際に引数の過不足があるとエラーになります。
def greet(country)
if country == 'japan'
'こんにちは'
else
'hello'
end
end
# 引数が少ない
greet
#=> wrong number of arguments (given 0, expected 1) (ArgumentError)
# 引数がちょうど
greet('us') #=> "hello"
# 引数が多い
greet('us', 'japan')
#=> wrong number of arguments (given 2, expected 1) (ArgumentError)
しっかり引数の確認をとらないとエラーになってしまうことが多いです。
(自分もこのエラーはよく起こしています😢)
ただし、Rubyではメソッドの引数の数を柔軟に変える方法がいくつかあります。
そのうちの1つがデフォルト値付きの引数です。
さあ、見ていきましょう!
デフォルト値付きの引数
引数にデフォルト値を付ける場合は次のような構文を使います。
def メソッド(引数1 = デフォルト値1, 引数2 = デフォルト値2)
# 必要な処理
end
先ほどのgreetメソッドにデフォルト値を設定してみましょう。
こうすると引数なしで呼び出した場合でもエラーになりません。
# 引数なしの場合はcountryに'japan'を設定する
def greet(country = 'japan')
if country == 'japan'
'こんにちは'
else
'hello'
end
end
greet #=> "こんにちは"
greet('us') #=> "hello"
また、他には以下のようなデフォルト値の引数もあります。
・デフォルト値ありとデフォルト値なしの引数を混在させることも可能。
・デフォルト値は固定の値だけでなく、動的に変わる値や、ほかのメソッドの戻り値を指定できる。
他にはメソッドの引数を柔軟に変更する方法もあります。これについては後日見ていこうと思います!
メソッドは奥が深いですね、、、
さいごに
デフォルト値付きの引数があるメソッドについてみていきました。
他にもメソッドには種類があるので、続きは次回見ていきます!
Discussion