rubyでこの文法が覚えられない・・・・・・

*

「*」。ポインタか???。毎回々々悩んでしまうので備忘がてらに書いておく。

動機

また思い出せない、、、、。以下のコードを読んでいて思った。

ARGV.push *%w[-a mongrel]

http://github.com/wycats/merb-core/tree/master/bin/merb

何だったっけなぁ・・・・。引数に「&」の場合はブロックだなぁ・・・。何だっけなぁ・・・・。

答え

可変引数として配列を渡す際のおまじないでやんす。

ar = ["-b","-c","-d"] 
ar.push %w[-a mongrel] #=> ["-b", "-c", "-d", ["-a", "mongrel"]]

ar = ["-b","-c","-d"] 
ar.push *%w[-a mongrel] #=>  ["-b", "-c", "-d", "-a", "mongrel"]

ちなみにArray.pushの仕様はこちら
http://www.ruby-lang.org/ja/man/html/Array.html#push