###キーワード引数
メリット
- 引数の順番を気にしなくていい
- 引数が何を指しているのかわかりやすい
####引数にデフォルト値を与える
def greet(name, message = 'Hello')
"#{message}, #{name}さん"
end
#messageを指定しないとデフォルト値がそのまま出力される
greet('Kato')
#=> Hello, Katoさん
#デフォルト値を変更
greet('Kato', 'Hi')
#=> Hi, Katoさん
#引数の順番を逆にすると意図してない動きをする
greet('Hi', 'Kato')
#=> Kato, Hiさん
####キーワード引数を使う
def greet(name: '名無し', message: 'Hello')
puts "#{message}, #{name}さん"
end
#引数指定なし
greet
#=> hello, 名無しさん
#nameのみ指定
greet(name: 'Kato')
#=> Hello, Katoさん
#messageのみ指定
greet(message: 'Hi')
#=> Hi, 名無しさん
#name, messageともに指定
greet(name: 'Kato', message: 'Hi')
#=> Hi, Katoさん
#引数の順番を逆にする
greet(message: 'Hi', name: 'Kato')
#=> Hi, Katoさん
###キーワード引数はシンボルと同じじゃないの?と思った人はこちら
###参考
####おまけ
「デフォルト引数」という言葉が公式なのか微妙だった