[#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:19486] Re: equality between "a" and Exception.new("a")

From: Tanaka Akira <akr@...17n.org>
Date: 2003-02-04 06:30:27 UTC
List: ruby-dev #19486
In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,
  matz@ruby-lang.org (Yukihiro Matsumoto) writes:

>   require 'delegate'
>   str = SimpleDelegator.new("abc")
>
> のように作ったオブジェクトstrのtypeはT_STRINGではありません
> が、なるたけT_STRINGであるかのように振る舞ってほしいわけです。
> そのようなとき、to_strを使ってT_STRINGなオブジェクトに変換し
> たいというのが元々の発想です。自分に送られるメッセージは転送
> することで対処できますが、引数として使われる場合にはto_strで
> 対処しようということですね。

C レベルで中身を覗きたい時に呼ぶメソッドということですかね。

だとすれば、機構の観点からすると、to_str のレシーバと返値が同じような
メソッドを持っている必要性はないですよね。その必要性を要求するとすれば、
もっと上の運用基準とかになるのかな。

> pathname.rbはopenの引数にしたいだけで、別に文字列として振る
> 舞うわけではないんですか? ソース見ればよいんだけど。

振舞は全然違います。

まぁ、基本的には IO, File, Dir, FileTest あたりの(パス名を引数にとる)
クラスメソッドがインスタンスメソッドになってると考えれば間違いはないで
す。

> to_strは「引数として渡されたときに(なるたけ)T_STRINGのオブジェ
> クトと同じように振る舞うとき」に用意するメソッドで、to_sは
> 「(printなどで)文字列表現が必要なとき」に呼ばれるメソッドで
> す。to_sはすべてのオブジェクトが持っていますが、to_strはすべ
> てのオブジェクトが持っているとは限りません。

では、URI が引数として渡された時にT_STRINGのオブジェクトと同じように振
る舞ってほしいかどうか、が問題なわけですね。

たとえば、/\Ahttp:/ =~ uri などが動いて欲しいか、とか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread