From: matz@... (Yukihiro Matsumoto) Date: 2000-02-07T13:58:29+09:00 Subject: [ruby-dev:9137] Re: bang method returns string always まつもと ゆきひろです In message "[ruby-dev:9130] Re: bang method returns string always" on 00/02/07, Koji Arai writes: |・Arrayのbang methodも挙動を変えないと。 ですね。揃えた方が良いでしょうね。 |・Hashのreject!(とENV.reject!)は、元もとnilを返しませんね。 | でも、Enumerable#reject と戻り値の形式が違うので、 | Hash#rejectは新たにあった方がよいのかも。(挙動の統一にこ | だわるなら) ですね。揃えた方が良いでしょうね。 ENV.rejectはHashを返すんだろうか。 |・exitとexit!(とProcess.exit!) | は、異質なbang methodですね。 Rubyでは ! は「破壊的」という意味ではなく「注意、より危険」 という意味です。そういう意味でexit!は異質ですが、ルール破り と言うほどではないです。昔は break! とかもあったし。 |ところで、私は反対派です。 | |・今の仕様で本当に困っていることがあります?ドキュメンテーショ | ンの問題ではないのかな。bang methodの扱いは現状ぐらいが柔 | 軟で良いかと感じてます。 思わず gsub! のチェーンを作ってがっかりした経験は私にさえ何 度もあり、これは十分「困っている」と言えると思ってます。 |・今更?って感じがあります。gsub!で条件判断するコーディング | は実際使ってて、いつか全ユーザに書き換えを強制させることに | なるのは辛いと思う。 ま、これはその通りです。 | 警告を出すとのことですが | | cond = s.gsub! ... | if cond | ... | end | | こういうのは無理ですよね? 無理でしょうねえ。いや、やればできるかも...,やめよう、効率が 悪そうだ。 |・なひさんと同じ理由で、メソッドチェーンあまり好きじゃないで | す。メソッドチェーンってエラー追跡のために結局ばらしちゃう | んですよね。 これはエラーメッセージがもっと適切であるべきという話になるよ うに思います。引数情報とかも含まれてれば良いのかも。 |1.5での実験を止めろというわけではないです。が、いつでも戻せ |るようにもう1個ブランチ作ってくれるとかしてもらった方がうれ |しいです。管理が大変かも知れませんが、このまま勢いで仕様変更 |が進んで行くのは不安があります。 というか、ブランチで作業しちゃうとかえって反論がでなくて「勢 いで仕様変更」になっちゃう気がします。やはり本流で作業して なひさんみたいに「困る人」が出ないと議論が進まないと思います。 もうここまで来ちゃったからという理由でなし崩しに採用するつも りはなく、戻すべきと言う結論が出ればちゃんと戻しますから安心 してくださいませ。 まつもと ゆきひろ /:|)