安井です。 rubyを使うようになってからの素朴な疑問なのですが、ライブラリの中 で to_iやto_s がよく出てきますがこれらのメソッドって必要なので しょうか? これらは、単に、StringクラスやNumeric系クラスの中の演算系メソッド の中に隠蔽化、つまり、引数の型を判断して処理を行えばすむ話ではな いのでしょうか。 なぜこんなことを言うかというと、Timeクラスを使って年月日を操作する とき、今、この数値を表すオブジェクトは、StringなのかNumeric系なの かよく迷ってしまうんです。 面倒だからとプログラムを走らせてエラーがでるかどうかで判断すること もあります。 話を簡単にするため、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"になってほしいのです。 どうです? エレガントじゃありませんか? そうすれば、 ruby> 1+'1'.to_i 2 ruby> '1'+1.to_s "11" などとしなくてすむでしょう。 反対意見があるかも知れません。絶対必要だというケースがあるなら 教えて下さい。 # 組み込みクラスってrubyソースじゃあなかったですよね? # rubyだったら提案できるかも知れない。 - - - - - - 安井@日立造船 e-mail: yasuisu / omssv.hq.hitachizosen.co.jp