From: matz@... (Yukihiro Matsumoto) Date: 2000-08-28T13:30:59+09:00 Subject: [ruby-list:24603] Re: Coerce between Range and Boolean まつもと ゆきひろです In message "[ruby-list:24586] Re: Coerce between Range and Boolean" on 00/08/28, GOTO Kentaro writes: |In message "[ruby-list:24480] Re: Coerce between Range and Boolean" | on 00/08/25, Yukihiro Matsumoto writes: |>|Ruby の case が C の switch が便利になったモノだとすれば、ク |>|ラスが違う場合に対処できてもいいんやも、とも思ったりします。 |>|Range と Regexp の === で rescue TypeError; return fail する |>|ようにして、マズいことが思い付かないというのもその理由です。 |> |>RangeとRegexpだけでよいのかしら? あるいはユーザ定義の === |>のためにも === は例外を返すべきでないと定義すべき? | |ええ、そう思います。でも、変更は結局RangeとRegexpだけでは?? いまはね。 |>確かに include? は列として扱ってますよね。どっちが良いのかな |>あ。Range#include? ってくらいだから、範囲判定のような気はし |>ますね。一方、Range#member?は列でも妥協できそうな。 |># モメるか。いずれにせよ、変更は1.7以降ですが。 | |モメる可能性はありますね。でもRange#include?はやっぱり範囲で |扱って欲しいです。列にするなら、Enumerable#find に lists? と |いう別名を与えるのはどうでしょうか?? lists? うーむ。ピンとこない名称。 実はRubyの命名規則に「できるだけ原形」というのがあります。だから、 hasじゃなくhave、is_kind_ofじゃなくkind_of?なワケ。 |それはそれとして、member? の存在を忘れてましたが、member?っ |て名前はなんかレシーバと引数が逆な印象を受けます。Enumerable |とHashにあるんですね。has? のほうがよいような。 |# といってもイマサラな提案かも知れない… イマサラでしょうね。ま、レシーバと引数が逆な印象をうける名前 はところどころに散見されますね。名前は難しい。 まつもと ゆきひろ /:|)