Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Ruby2.1新規要素 | キーワード引数のデフォルト値省略

概要

キーワード引数のデフォルト値省略

詳細

Ruby2.0で導入されたキーワード引数ですが、デフォルト値を省略したいという
要望が多かったため、Ruby2.1で機能追加されました。

サンプルコード
# encoding: utf-8
require 'tbpgr_utils'

def show_charactor(charactor, upper: , spacing: )
  charactor.upcase! if upper
  charactor = charactor.spacing if spacing
  charactor
end

bulk_puts_eval binding, <<-EOS
show_charactor("hoge", upper: true, spacing: true)
show_charactor("hoge", spacing: true, upper: true)
EOS
出力
show_charactor("hoge", upper: true, spacing: true) # => "H O G E"
show_charactor("hoge", spacing: true, upper: true) # => "H O G E"

補足

デフォルトを省略すると、引数を省略できなくなります。
その際は下記のようなエラーメッセージになります。

ruby_2_1_keyargs.rb:10:in `<main>': missing keywords: upper, spacing (ArgumentError)
:
: