From: take_tk <ggb03124 / nifty.com>
Subject: [ruby-list:45334] def meth(*args, &block) の「*」「&」の呼び名は?
Date: Sun, 10 Aug 2008 22:58:31 +0900

> 最後の仮引数の直前に * がある場合には残りの実引数はみな配列とし てこの引数に格納されます。 可変長引数などと呼ばれる機能です。
> 最後の仮引数の直前に & があるとこのメソッドに与えられているブロッ クが手続きオブジェクト(Proc)としてこの引数に格納されます。
> 
> ということなのですが、この「*」や「&」の呼び名は何でしょうか?

そういえば書いてありませんね。
僕は「可変長引数」と「&引数」と呼んでいます。
「ブロック引数」だと |〜| のことと誤解しがちなので。

> 「配列展開演算子」、とか「splat演算子」、「ブロック展開演算子」とか、勝

少なくとも演算子と呼ぶのはおかしいと思います。
「splat演算子」はこっちのほうでしょう。

a = [2,3]
x = 1, *a
x         # => [1, 2, 3]

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/