From: Koji Arai Date: 2000-02-07T16:03:59+09:00 Subject: [ruby-dev:9139] Re: bang method returns string always 新井です。 >>> From: matz@netlab.co.jp (Yukihiro Matsumoto) >>> Date: 07 Feb 2000 13:58:29 +0900 >>> Subject: [ruby-dev:9137] Re: bang method returns string always > まつもと ゆきひろです > なひさんみたいに「困る人」が出ないと議論が進まないと思います。 > もうここまで来ちゃったからという理由でなし崩しに採用するつも > りはなく、戻すべきと言う結論が出ればちゃんと戻しますから安心 > してくださいませ。 はーい。 では、前向きな案をば。 ・bang methodの挙動をメソッドチェーンしてるかどうかで変える。 def gsub! result = self.old_gsub! if chained! self else result end end とか。(bang methodの仕様が複雑になるだけ?) ・no bang メソッドの効率を良くする。 newstr = str.chop.gsub.upcase を newstr = (str.dup).chop!.gsub!.upcase! と等価にする(ここで書いてるbang methodはnilを返さない) (bang method でメソッドチェーンを書こうとするのは効率のた めなのですよね?) -- 新井康司 (Koji Arai)