Ruby のオプション引数にはシンボルをキーとした Hash 値しか渡せない
ハマったので覚書。
次のようにオプション引数に対してシンボル以外の値をキーとした Hash 値を渡そうとしたらエラーになりました。
def disp **opt puts opt end disp # => {} disp(name: "homu", age: 14) # => {:name=>"homu", :age=>14} disp("name" => "homu", "age" => 14) # => Error: wrong number of arguments (1 for 0) (ArgumentError)
エラー内容から原因が全然わからなくて30分ぐらい時間を無那にした…。
ここら辺の Ruby の仕様ってどこを調べればいいんですかねぇ…。