【Ruby】デフォルト引数やキーワード引数って、 Nan - Nan ?

デフォルト引数やキーワード引数について調べたことを取りまとめました。

 

 

デフォルト引数:

def foo(bar, baz = 'World', qux = '!!!')
p "#{bar}#{baz + qux}"
end
# 実引数を省略した場合デフォルト値が代入される
foo('Hello') # => "Hello、World!!!"
foo('Hello', 'Ruby') # => "Hello、Ruby!!!"
# 途中の引数を省略することは不可
foo('Hello', , 'xxx') # -> syntax error, unexpected ')',
expecting end-of-input

 

qiita.com

 

 

キーワード引数

 

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
 
また、可変長引数とデフォルト引数、キーワード引数を組み合わせる事も可能。
 
そして、キーワード引数とオプション引数を組み合わせる事も可能。

 

techracho.bpsinc.jp

 

実際の例を見ながら、推奨コーディングを見てみましょう。

qiita.com