From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-04-06T18:08:46+09:00 Subject: [ruby-dev:2091] Re: new coerce けいじゅ@日本ラショナルソフトウェアです. メイルに埋もれていました. In [ruby-dev :2076 ] the message: "[ruby-dev:2076] Re: new coerce ", on Apr/06 16:01(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|irb:084:0> "a" + b >|"a#" >ふむ,一理ありますね.では何処まで許すべきでしょう. > > (1) 文字列の連結は文字列同士だけ有効 > (2) 現状(なんでも文字列化) > (3) どこかその間 > >1も2もある程度筋は通っていると思います.1に変更すれば非互換 >にはなりますが,妥協できる程度だと思います.3となると線引き >しないといけませんね. to_iと違ってto_sって全てのオブジェクトが知っていますからねえ... (1)は 私には魅力的なんですが, そうすると, print "foo: #{foo}\n" を print "foo: #{foo.to_s}\n" 書かなくてはいけないなんて話しになると, 辛いし... #{..}とString#+の動 作が違うというのも, 何だなあと思わないでもないし... やはり, 現状がベストなのかなあ... >|>|irb:033:0> nil + 1 >|>が成立するためのしかけです.いらないといえばいらないのですが, >|>絶対既に使っている人がいると思うぞ. >|そうですね... >勘弁して下さい. これって, 考えてみると, 豊福さんが[ruby-list:7325]で書かれたオブジェク トの機能のサブセットなんですよね. いっそのこと, nilをこのオブジェクトにしちゃうというのはどうでしょう? nil op val -> val ここまですると危険かなあ... >まあ,これはイロイロ考えた結果なんで許して下さい. ># 低姿勢 ^^;;; しょうがないなあ. 許すことにしましょう!! # 高姿勢 (^^;;; >|うーん. これって何が原因なんでしょうね. String#+はto_sしないって話しに >|なるなら, こっちも to_iをしないというのは筋が通っているとはいえますけ >|どね... > >文字列の暗黙の数値化が問題のような気がするので,文字列の暗黙 >の数値化は禁止しましょう.明示的にto_iやIntegerで変換した場 >合には今まで通りと. まあ, irb:023:0> "aaa" * "02" "aaaaaa" なんて, 使っている人もいないでしょうしね. あと, to_iは文字列以外は Numericだけですから, ほとんど問題は起きないでしょう. __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---