青山です。

しまった。1.6.2 がクリスマス予定なんですね。

On Fri, 22 Dec 2000 12:00:12 +0900,
matz / zetabits.com (Yukihiro Matsumoto) wrote:

> だって、マッチしたかどうかが知りたいじゃないですか。nilを返
> すのはやめないと思います。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/9052
> Mon Jan 31 15:24:58 2000  Yukihiro Matsumoto  <matz / netlab.co.jp>
> 
>         * string.c (str_sub_bang): bang method returns string always.
>           experimental.

このスレッドの時の意見と逆なんですね。"string".sub!() は nil を返さな
い、$& を使ってくれ、という事から、/re/.match("string") も nil を返さ
ない、Regexp::last_match[0] を使ってくれ、という流れは許容されるという
か、当然という感じの流れかと思ったのですが。

なお、"string" =~ /re/, /re/ === "string" に関しては、見た目にも真偽式
として使いたくなる記述ですので、これらは nil を返すままでいいかとは思
います。

という事で、=~ はそのままで、/re/.match() は常に MatchData という原さ
んの案に一票。

ちなみに、この時のスレッドで、chop!, chomp!, tr! での変化の有無のチェッ
クの問題の話しもちょっと出ていますね。たぶん、同時期あたりに、chop!?
のように !? にした場合には nil を返しては、という話し合いもあったかと
思います。

このあたりが to_i にも関係するかも。ちょうど、to_i? 案も出ていますし。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>