From: matz@... (Yukihiro Matsumoto) Date: 2003-02-04T13:29:13+09:00 Subject: [ruby-dev:19478] Re: equality between "a" and Exception.new("a") まつもと ゆきひろです In message "[ruby-dev:19477] Re: equality between "a" and Exception.new("a")" on 03/02/04, Tanaka Akira writes: |が、すでに、URI という後者を仮定して == にトリックをいれて交換律を成り |立たせていたものが存在し、その仮定が崩れたために URI と String の交換 |律が壊れたというのがここでいう問題です。 やっと理解できました。 |結局のところ話は単純で、3行消してはどうか、というだけのことなんですが。 しかし、この場合URIとStringの間の == が成立しなくなりますよ ね。それはそれで良いのでしょうか。 まあ、to_strってのは実際はdelegationなどを動作させるためのも ので、まったく違うクラスがto_strを持ってることそのものが変だ といえば変なのですが(もちろんExceptionも変)。 ということは、URIに対しては * to_strを定義しない(to_sにする) * 上記の3行を削除 というのが正しい更新かな。やまださん、異論があります? to_aryはdelegationというよりは多重代入の右辺にしたいというニー ズの為なのでまた違ってくるのかも。もうちょっと考えよう。 まつもと ゆきひろ /:|)