けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :7361 ] the message: "[ruby-list:7361] Re: Q: jcode.rb
tr(String + nil) ", on Apr/08 13:30(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|昨晩、この動作を別のライブラリ(自作の ndtp(CD-ROM 辞書検索) 用のも
>|の)でボロボロでてきて、「nil」の扱いについて、ちゃんとした方がいい
>|なと思いました。私は安易に nil を返すようなメソッドを作っていたの
>|で...
>
>String#+とString#concatは「nilを受け付けるようにしようかなあ」
>と思い始めてます.

そうですね. そのぐらいはいいですかね...  Array#+/Array#concatでは許さ
れていますしね.

そうすると, nil == nil | false | [] | "" | 0 ってイメージになるのかな?

でも, 

In [ruby-dev :2093 ] the message: "[ruby-dev:2093] Re: new coerce ",
on Apr/06 18:20(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>| nil op val -> val
>|
>|ここまですると危険かなあ...
>
>Objective-Cはこうなってます.内輪の話になりますが,CXでもそ
>うしてました.でも,これだとけっこうバグが見付からずに素通り
>しちゃう傾向があるみたいなんでrubyでは採用してません.

にあったように, 結構バグの元になりますから, あんまり拡張するのも何なん
ですかね.

今は, 論理演算(false) と +([],"",0), concat([],"")だけなのかな?

どうせなら, 

  nil.concat []or"" 
  1 + nil

も許します?

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju / rational.com <<---