From: Shugo Maeda Date: 2008-02-01T12:34:34+09:00 Subject: [ruby-dev:33557] Re: block parameter of String#gsub 前田です。 On 01/31/08 23:32, Yukihiro Matsumoto wrote: > |気になるのは互換性ですが m.to_s は 今までの $& と一致するので、 > |"abcdefg".gsub(/(.).(.)/){|m| m+","} はさすがにエラーが出ますが、 > |"abcdefg".gsub(/(.).(.)/){|m| "%s," % m} なら今まで通り動きますし、 > |そもそもおそらくほとんどの現在のコードは、 > |"abcdefg".gsub(/(.).(.)/){$&+","} でしょう。 > > うーん、そこまで割り切れるのかなあ。他の人の意見を聞きたいと > ころです。 個人的にはstr.gsub(/[A-Z]/) {|s| "_" + s.downcase}みたいなコードは 結構書いてますね。 grep 'gsub.*{ *|'とかしてみると、標準添付ライブラリにもいくつか動か なくなるコードがありそうです。 > 私が考えていた(けど、1.9.0には間に合わなかった)アイディアは、 > subに対応するs、gsubに対応するsg(またはgs)メソッドをStringク > ラスに新設し、こちらではMatchDataを与えるというものです。 sやsgだとちょっと短かすぎませんか? -- 前田 修吾