[#19457] equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、

39 messages 2003/02/02
[#19460] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/03

まつもと ゆきひろです

[#19473] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,

[#19474] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19475] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044329220.257740.28127.nullmailer@picachu.netlab.jp>,

[#19476] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19477] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044331431.138035.28173.nullmailer@picachu.netlab.jp>,

[#19478] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19479] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044332948.099873.28206.nullmailer@picachu.netlab.jp>,

[#19482] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19486] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,

[#19491] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19493] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19556] compare between String and Exception — Tanaka Akira <akr@...17n.org> 2003/02/12

さらに気が付いたのですが、

[#19514] [Oniguruma] Version 1.7.1 — "K.Kosako" <kosako@...>

ftp.ruby-lang.orgに、onigd20030207.tar.gzを置きました。

19 messages 2003/02/07

[#19548] [PATCH] file.c for (PR#389) and (PR#390) — nobu.nakada@...

なかだです。

20 messages 2003/02/11
[#19572] Re: [PATCH] file.c for (PR#389) and (PR#390) — pegacorn@... 2003/02/14

From: nobu.nakada@nifty.ne.jp

[#19648] Re: SEGV at search_method in eval.c (PR#400) — nobu.nakada@...

なかだです。

13 messages 2003/02/24

[ruby-dev:19493] Re: equality between "a" and Exception.new("a")

From: matz@... (Yukihiro Matsumoto)
Date: 2003-02-04 07:23:24 UTC
List: ruby-dev #19493
まつもと ゆきひろです

In message "[ruby-dev:19491] Re: equality between "a" and Exception.new("a")"
    on 03/02/04, Yukihiro Matsumoto <matz@ruby-lang.org> writes:

|そういうことです。「to_strを定義することの意味」とでも言いま
|しょうか。to_strを用意した本人としては「文字列のように振る舞
|うオブジェクト」のために用意したつもりでしたが、実際問題とし
|てExceptionやURIではそのようには使われていませんし。
|
|また、pathname.rbのように「openの引数に使いたいんだけど、別
|に文字列として振る舞いたいわけじゃない」というケースのことを
|考えると、むやみに「文字列として振る舞いたい」ケースを強調す
|るのも考え物です。

とういうことで、より深く考えた結果、以下のような振る舞いが良
いかもしれないと思うようになりました。

  * to_strは文字列引数として振る舞いたいとき(openの引数にし
    たいとか)に定義する。レシーバとして文字列のように振る舞
    う必要はない。

    なんとなく対称性がないような気もしますが、妥協しましょう。

  * 文字列のa == bはbがT_STRINGでないとき、一切falseになるの
    はやはり望ましくない(Delagatorとかがありえるから)。そこ
    で、bがT_STRINGでないとき、bがto_strを持ち、かつb == aの
    ときに真であるとする。

ちょっと実装して試してみます。

In This Thread