ふなばです。 At 1999-10-14T16:41:22+0900 (2451465.82039JD), wakou / fsinet.or.jp (Wakou Aoyama) wrote: wakou> 青山です。 wakou> On Thu, 14 Oct 1999 16:00:07 +0900, wakou> Tadayoshi Funaba <tadf / kt.rim.or.jp> wrote: > そういっちゃうと、なんでも言いきれないような気がするんですが、具体的に > どうすればいいのでしょう。 wakou> 最初ににあげたように、-1, nil, 1 とか、-1, false, 1 だと いえ、違います。 wakou> このあたりは難しいですよね。だいたい、-1, 1 もこれが適切とは言いきれま wakou> せんし。しかしとりあえず、 だいたい、-1, 1 もこれが適切とは言いきれません、といっていますよね。 wakou> a.to_i <=> b.to_i || a.to_s <=> b.to_s || a.to_f <=> b.to_f > ただ、これは、ずらずら並べれば、どうやっても、美しくなりようがないでしょ > う。しかも、対象の数があらかじめ判っていて、その数が少ないときでないと > つかえないと思います。 wakou> ちょっとここはよく意味がわかりませんでしたが、次のような記述は結構美し wakou> いのではないかと思いますけど、あまり馴染みありません? wakou> a.to_i <=> b.to_i || a.to_s <=> b.to_s || a.to_f <=> b.to_f wakou> a.to_i <=> b.to_i ||| a.to_s <=> b.to_s ||| a.to_f <=> b.to_f これは、あらかじめ、たったの3つだと判っているということですよね。 > 僕は、C などでよくつかわれているらしい、決り文句を Ruby で、そのままや > ろうとしているのが、よくないのではないかと思います。僕は、とくに仕様が > 不適切だと思ったことはないです。 wakou> ちょうどまったく同じ事を私も書いています([ruby-list:17665])。やはり C wakou> の書き方をそのまま Ruby に持ち込むと違和感がでる場合がありますよね。 いえ、意味がまったく違うと思います。青山さんは、零を nil や false に直 そうといっていますが、 それは、 Ruby 流にするためでなく、C 的な発想を Ruby に持ちこむためです。Tosh さんもいうように、<=> の零を偽と解釈する のはムリがあると思います。 僕は、<=> の零を nil や false に読み替る版や、|| の右辺の零を特別あつ かいする版は、とても気持ちがわるいです。もっといろいろ便利につかえるの であれば、少々気持ちわるくてもよさそうですが、今のところ、そういう話も でていないので、納得できません。 ふなば ただよし