In article <E1JrZNo-000202-Nl / x61.netlab.jp>, Yukihiro Matsumoto <matz / ruby-lang.org> writes: > 1.8ではMatchData#selectは、ブロックが与えられたらEnumerable系、 > 引数が与えられたらvalues_atという動きをしていました。 そういう動きをしていたのは 1.8.0 だけです。 > が、混じ > るのは良くないだろうと思った覚えはあります。 その思いは 1.8.1 で実現され、それ以降は引数が与えられるとエ ラーになっています。 > 1.8の範囲内で重大な非互換性を発生させるのは本意ではないので、 > いまさらですが1.8.7のMatchData#selectは1.8.6と同じように > Enumerable系の動作に戻す(RDocもそれにあわせて書き換える)べき > でしょう。 そう思います。 > で、1.9でどうするかですが、MatchDataに対してEnumerable系の > select(だけ)が必要になる局面はほとんどないと思いますし、とは > いえselectというメソッドを見ると誰もがEnumerable系の動作を期 > 待しますから、いっそ削除してしまうのがよいのではないかと思い > ます。 > > どうでしょう? [ruby-dev:15419] を見つけて読みましたが、欲しかったのは結局 select じゃなくて values_at だった、っていうことなんですかね。 削除するというのは、MatchData#select の最初の意図に沿ってい るとはいえるんじゃないでしょうか。 -- [田中 哲][たなか あきら][Tanaka Akira]