新井です。

In message "[ruby-dev:20271] Re: splat restary"
  on 22 May 2003 02:36:56 +0900,
  matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> まつもと ゆきひろです
> 
> In message "[ruby-dev:20268] splat restary"
>     on 03/05/22, nobu.nakada / nifty.ne.jp <nobu.nakada / nifty.ne.jp> writes:
> 
> |この違いは意図的でしょうか。
> |
> |$ ruby -e 'a = *1..2; p a'
> |# => [1, 2]
> |$ ruby -e p *1..2
> |# => 1..2
> |
> |Object#to_aを使わないようにした副作用かという気がするのですが。
> 
> いいえ。コミットしてくださいませ。

あら? [ruby-list:37614] で確認したときは

> |`*' による配列展開は、多重代入の右辺とメソッド呼び出しの引数
> |の二種類ありますが、* の対象が配列でないとき・・・
> |
> |  o 多重代入の右辺においては、to_ary だけでなく、to_a も配列展開の
> |    ための配列化に利用されるようになった(ただし、Object#to_a は対象外)。
>
> そうです。
>
> |  o メソッドの引数においては、to_a は利用されなくなり、
> |    to_ary だけが利用されるようになった。
>
> |ということでよろしいでしょうか?
>
> そうです。右辺(または呼び出し側)の単項 * はto_aryだけを使い
> ます。

っと言っていたのですが。。(まあ、「右辺(または呼び出し側)の」っ
と書いてあるのでまた確認しようと思ってはいたのですが(^^;

# まだマニュアルに反映してない・・

つまりは、多重代入の右辺、メソッド呼び出しの引数ともに 
to_ary と to_a(将来なくなる予定の Object#to_a を除く)が配列
化の対象になったということですね?

--
新井康司 (Koji Arai)