[#29374] nil.to_s — Shugo Maeda <shugo@...>

前田です。

59 messages 2006/09/01
[#29375] Re: nil.to_s — "U.Nakamura" <usa@...> 2006/09/01

こんにちは、なかむら(う)です。

[#29380] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29387] Re: nil.to_s — Shugo Maeda <shugo@...> 2006/09/01

前田です。

[#29390] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29398] Re: nil.to_s — "NARUSE, Yui" <naruse@...> 2006/09/01

成瀬です。

[#29400] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29491] symbol and string — Tanaka Akira <akr@...>

open-uri で :proxy=>nil という指定を行うと、以下のようにエラーになります。

33 messages 2006/09/05
[#29499] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/05

まつもと ゆきひろです

[#29500] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/05

In article <1157470154.047826.13379.nullmailer@x31.priv.netlab.jp>,

[#29503] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29504] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/06

In article <1157505538.340126.8472.nullmailer@x31.priv.netlab.jp>,

[#29507] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29512] Re: symbol and string — keiju@... (石塚圭樹) 2006/09/06

けいじゅ@いしつかです.

[#29529] Re: symbol and string — SASADA Koichi <ko1@...> 2006/09/08

 ささだです。

[#29530] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/08

まつもと ゆきひろです

[ruby-dev:29396] Re: nil.to_s

From: "U.Nakamura" <usa@...>
Date: 2006-09-01 16:14:46 UTC
List: ruby-dev #29396
こんにちは、なかむら(う)です。

In message "[ruby-dev:29390] Re: nil.to_s"
    on Sep.01,2006 23:46:52, <matz@ruby-lang.org> wrote:
| 「putsの方を変える」というのは、どういう風に変えることを想定
| しているんでしょうね。nil.to_sを""のままにするなら、「変えな
| い」のが一番良いと思うのですが。

前田さんが私と同じ意見だとして、[ruby-dev:29384]にも書いたよ
うに、putsにおけるnilの特別扱いをやめる、ということです。
おそらくそれは、nilの場合だけ"nil"という文字列を出力させてい
たことを指すのだと思いますが、それをせずに他のオブジェクトと
同じくrb_obj_as_string()に渡す、つまりto_sの結果である""が出
力される、ということです。

ですが、これは、nil.to_sを"nil"に変える理由のひとつがその特別
扱いにあるということだから、であって、本当のところを言えば、
これもやはり変えないままでよければそれが無難でしょう。
# そりゃ、何も変えないのが無難には決まってますが...


| nilというのは「なんでもない」ことを意味するオブジェクトで、
| 数値でも数値的なオブジェクトでもありませんから、(to_iによる)
| 数値への変換対象であるというのは不自然なことだと思います。同
| 様にnil.to_sは「そのオブジェクトがどんなものであるか」がはっ
| きり分かる文字列であるべきで、それは空文字列ではなく、"nil"
| という表現ではないかと感じました。

to_sの結果が「『そのオブジェクトがどんなものであるか』がはっ
きり分かる文字列であるべき」とすると、inspectとの住み分けはど
うなるのでしょうか?
リファレンスによれば、to_sが「オブジェクトの文字列表現」であ
り、inspectが「オブジェクトを人間が読める形式に変換した文字列」
だとありますが、to_sが今回まつもとさんが説明されたような目的
のものであるとすると、この二つのメソッドの違いがよくわからな
くなってしまいます。


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>


In This Thread