[#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:29398] Re: nil.to_s

From: "NARUSE, Yui" <naruse@...>
Date: 2006-09-01 16:47:43 UTC
List: ruby-dev #29398
成瀬です。

ぎゃっ。

nil.to_s についてです。

Ruby でのルーズな tips として、
その値が文字列か nil かわからないときに nil.to_s を使う、
というのがあるかと思います。

例えば、以下のような感じです。

  h = { :a => "hoge", :b => "fuga" }
  puts "a: %s, b: %s, c: %s" % [h[:a], h[:b], h[:c]]
  puts h[:a].to_s + h[:b].to_s + h[:c].to_s

ここでは本来 h.fetch(:c, "") とした方がいいのでしょうが、
とりあえず to_s ですむ方が楽です。

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

nil 単体のことだけ考えた場合は、それが何かわかると便利ですね。
ただ、それは inspect でいい気もします。

to_s の場合は前田さんの [ruby-dev:29393] に同旨ですが、
なにかに nil の変換結果を加えても「なんでもない」のだから、

  string + nil.to_s == string
  integer + nil.to_i == integer
  float + nil.to_f == fload

を期待したいので "", 0, 0.0 が好みです。

なひさんの [ruby-dev:29395] も一理あるとは思いますが、
to_s はエラー探しよりもダックタイピング用だと感じます。

-- 
NARUSE, Yui  <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

In This Thread