有馬です。

matz / zetabits.com (Yukihiro Matsumoto) wrote

| その提案の意図は理解できます。方向性には賛成です。が、to_lや
| to_dでは(Rubyにlongやdoubleがない以上)、あまり良い名前でない
| ように思います。単に
| 
|   (Integer(s) rescue nil)
| 
| で良いような気がするんですけど、そんなにchainしたいんですか?

正常系の本質的な記述がいちばん簡単に表現できるべきだろうと考えます。
それを保証するために、異常値なら例外として補足したいと。
method chain と書いたのは不適切だったかもしれません。
to_i の結果をそのまま式に使いたい局面は多いと思います。

def foo(s2, s2, s3)

  sec = s1.to_i * 3600 + s2.to_i * 60 + s3.to_i  
  .....
  true
rescue
  false
end

ここまで書いて Integer(s1) * 3600 + Integer(s2) * 60 + Integer(s3) でも
それほど変わらないだろうと気がついてしまった。
# どうやら関数形式が嫌いなのが理由らしい。
名前がよくないという指摘に対しては、懲りずに別案を挙げます。

String#integer(), String#to_integer(), String#to_int()
String#float(),   String#to_float()

これらはこれらで、誤解を招く名前のような気がするけれど。

--
 有馬 康弘 <fit0298 / fitec.co.jp>