From: Koji Arai Date: 2003-05-23T01:10:29+09:00 Subject: [ruby-dev:20277] Re: splat restary 新井です。 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 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)