[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:612

From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Fri, 16 Sep 2005 16:54:39 +0900
Subject: [yarv-dev:612] Re: yield multi values

まつもと ゆきひろです

In message "Re: [yarv-dev:582] yield multi values"
    on Tue, 16 Aug 2005 06:54:17 +0900, SASADA Koichi <ko1 atdot.net> writes:

| この辺はブロックパラメータの引数の設定は多重代入である、という原則があ
|るためですが、この仕様は Ruby2.0 においても同様でしょうか。それとも、変
|わりますか。あと、考え中とか。

「ブロックパラメータが多重代入である」という点は同じです。で
すから、

  * パラメータの数が少なければ、あまった値は無視
  * パラメータの数が多ければ、nilで埋める

ことは変わりません(ここがメソッド引数とは違う)。ただ、今まで
の仕様は「値としての配列」と「多値の表現としての配列」が混在
していますが、「本物の多値」の導入でこのへんがシンプルになる
のではないかと期待しています。

| アドホックに対応してるのは、ネストしてない多重代入のやつで、ネストして
|るやつはそもそも非対応。
|
|((a, b), c) = [[1, 2], 3] #=> 非対応
|
| ついでに、これは Ruby 2.0 にも持ち込むこと決定ですかね。決定なら真面目
|に実装します。

どうしましょうねえ。上記の「多値と配列の分離」の観点からは馴
染まないんですが、便利は便利ですよねえ。いまんとこ「なくして
もいいか」と思ってます。これは「多値がネストできるか」とか
「多値全体をオブジェクトとして(単値として)扱えるか」に関わる
問題ですね。

                                まつもと ゆきひろ /:|)

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       582 2005-08-16 06:54 [ko1 atdot.net       ] yield multi values                      
       583 2005-08-16 08:15 ┣[ko1 atdot.net       ]                                       
->     612 2005-09-16 16:54 ┗[matz ruby-lang.org  ]