From: matz@... (Yukihiro Matsumoto) Date: 1998-04-06T16:01:14+09:00 Subject: [ruby-dev:2076] Re: new coerce まつもと ゆきひろです In message "[ruby-dev:2061] Re: new coerce" on 98/04/05, 石塚圭樹 writes: |irb:083:0> b |# |irb:084:0> "a" + b |"a#" | |こういう結果になるのは, どうなんでしょう? エラーを出してくれた方が親切 |な気もするんですけどね... ふむ,一理ありますね.では何処まで許すべきでしょう. (1) 文字列の連結は文字列同士だけ有効 (2) 現状(なんでも文字列化) (3) どこかその間 1も2もある程度筋は通っていると思います.1に変更すれば非互換 にはなりますが,妥協できる程度だと思います.3となると線引き しないといけませんね. |>|irb:033:0> nil + 1 |>が成立するためのしかけです.いらないといえばいらないのですが, |>絶対既に使っている人がいると思うぞ. | |そうですね... 勘弁して下さい. | foo (a+=1), 2 | |なんかよりも影響は少ないかなと... |# 不便なことが多いから昔に戻して欲しい(;_; まあ,これはイロイロ考えた結果なんで許して下さい. # 低姿勢 ^^;;; |>|似たような話しですが, こんなのも見つけました: |>| |>|irb:035:0> "ab" * "def" |>|"" |>|to_iが0だからなんですね(^^;;; |> |>ではどのようにしたら良いと思います? Fixnumだけ受け付ける? |>それはそれで一貫性があると思いますが.1.0とかはだめなのね. | |うーん. これって何が原因なんでしょうね. String#+はto_sしないって話しに |なるなら, こっちも to_iをしないというのは筋が通っているとはいえますけ |どね... 文字列の暗黙の数値化が問題のような気がするので,文字列の暗黙 の数値化は禁止しましょう.明示的にto_iやIntegerで変換した場 合には今まで通りと. まつもと ゆきひろ /:|)