落書きノート

ふと自分が気になった事を書いてます

Ruby資格問題集 今回の成果

今回の成果は以下のプログラムです。

def bar(a:,b:100, **z)
  p z
  a + b
end

bar(a:2,c:100,d:200)

#=> [:c => 100,:d => 200]
#=> 102

キーワード引数を利用しています。呼び出しの際にハッシュオブジェクトを渡すことで、呼び出し側でどの引数にどのような値を渡したかを明示できる利点があります。任意の名前のキーワード引数も受け入れたい場合があります。このようなときは上記のプログラムのように定義することで、任意の値をハッシュに格納することが出来ます。

ちょっと紛らわしいプログラムですが、よく見たらなんとなくわかると思います。