こんにちは、なかむら(う)です。
In message "[ruby-dev:29374] nil.to_s"
on Sep.01,2006 18:30:03, <shugo / ruby-lang.org> wrote:
| trunkでnil.to_sが"nil"を返すように変更されたので、まつもとさんに
| 「本気ですか?」と聞いたらどうやら本気のようです。
ぎゃっ!
| 個人的には、nilは無・空を表すオブジェクトだと思っているので、文字
| 列に変換したら空文字列になるというのはそんなに違和感はないんです
| が、どうでしょう。
| そう考えると、整数に変換すると0というのも割と自然なんじゃないかと
| 思います。
全く同感です。
ちょっと整理してみましょうか。
1.8.5
String(nil) #=> ""
Integer(nil) #=> 0
Float(nl) #=> TypeError
nil.to_s #=> ""
nil.to_i #=> 0
nil.to_f #=> 0.0
現時点での1.9
String(nil) #=> "nil"
Integer(nil) #=> TypeError
Float(nl) #=> TypeError
nil.to_s #=> "nil"
nil.to_i #=> 0
nil.to_f #=> 0.0
前田さんのメールからの将来展望
String(nil) #=> "nil"(?)
Integer(nil) #=> TypeError
Float(nl) #=> TypeError
nil.to_s #=> "nil"(?)
nil.to_i #=> NoMethodError
nil.to_f #=> NoMethodError(?)
正直、将来展望が一番納得いかない、というか、それならnil.to_s
もNoMethodErrorじゃないの? とかいう気がします。嫌ですけど。
というわけで、
String(nil) #=> TypeError
Integer(nil) #=> TypeError
Float(nl) #=> TypeError
nil.to_s #=> ""
nil.to_i #=> 0
nil.to_f #=> 0.0
というあたりを希望します。
それでは。
--
U.Nakamura <usa / garbagecollect.jp>