2010年06月09日 引数の最後のカンマ
_ methodの引数と配列
rubyの引数を取るmethodでは、引数をカンマで区切って、丸括弧で囲む。def test(*a) puts a.class endなどとすると、引数の数が可変になり、それが配列として受け取ることができる。このような場合に、引数を一行ごとに書いて、
test( 1, 2, 3, )などとしたくなるのだが、これだと最後のカンマの後に引数が無いのでエラーが起きてしまう。仕方がないので、これまでは
test( 1, 2, 3 )と書いていたが、多少不便な点があった。例えば、2を除く時には行ごとコメントアウトすれば良いのだが、3を除くときには、少し書き換えなければいけない。これを回避する方法を見つけた。
test(*[ 1, 2, 3, ])と書くと、3を消すときも、一行コメントアウトすれば良いことになる。配列だと、最後のカンマは無視してくれることを利用している。しかし、引数を配列にしてから、もう一度展開するのは二度手間な気がする。そうするならば、初めから配列を引数にすれば良いのだが、必ず配列を渡すのも面倒な時もある。しばらくはこの書き方でいくことにしよう。