福嶋です。

HQss_YasuiS/hq_ss / omssv.hq.hitachizosen.co.jp wrote:
> 安井です。

> 話を簡単にするため、eval.rbを走らせて簡単な実験をやってみますね。
> 
> ruby> 1+1
> 2
> 
> ruby> 1+'1'
> ERR: (eval):0:in `+': String can't be coerced into Fixnum
> 
> ruby> '1'+'1'
> "11"
> 
> ruby> '1'+1
> ERR: (eval):0:in `+': failed to convert Fixnum into String
> 
> 2番目は、1+'1' =>2 に、4番目は、'1'+1 =>"11"になってほしいのです。
> どうです? エレガントじゃありませんか?

例えば、この例でメッセージを受けとるオブジェクトが変数だったらど
うでしょう。

  a + '1'
  a + 1

安井さんの提案どおりだとすると、これらの式が文字列として演算して
いるのか、数値として演算しているのかを読みとるためには、それこそ 
a がどのクラスのオブジェクトなのか把握している必要があると思いま
す。

その点、

  a + '1'.to_i
  a + 1.to_s

という書き方なら、「整数の加算をしているんだな」とか「文字列の連
結をしているんだな」ということが見るだけで明らかではないでしょう
か。


---
福嶋正機