【Ruby】デフォルト引数やキーワード引数って、 Nan - Nan ?
デフォルト引数やキーワード引数について調べたことを取りまとめました。
デフォルト引数:
def foo(bar, baz = 'World', qux = '!!!')
p "#{bar}、#{baz + qux}"
end
# 実引数を省略した場合デフォルト値が代入される
foo('Hello') # => "Hello、World!!!"
# 途中の引数を省略することは不可
foo('Hello', , 'xxx') # -> syntax error, unexpected ')',
expecting end-of-input
キーワード引数
def test1(name: 'unknown', age: 0)
puts "name=#{name}, age=#{age}"
end
> test1()
name=unknown, age=0
> test1(name: 'yamada', age: 20)
name=yamada, age=20
また、可変長引数とデフォルト引数、キーワード引数を組み合わせる事も可能。
そして、キーワード引数とオプション引数を組み合わせる事も可能。
実際の例を見ながら、推奨コーディングを見てみましょう。