Ruby Tips!

RubyのTipsを紹介します

オブジェクトをIntegerやFloatに変換する

Rubyでは、オブジェクトを整数に変換するメソッド名にto_iを使う慣例になっている。様々なRubyのクラスがこの慣例に従っており、例えば文字列や時刻、他にもnilto_iで整数に変換することができる。

p "123".to_i #=> 123
p Time.now.to_i #=> 1395194537
p nil.to_i #=> 0

もし、自分で定義したクラスに、整数に変換するメソッドを定義する場合も、その名前はto_iにしておくと混乱しない。

オブジェクトを整数に変換する別の方法として、組み込み関数Integerを使う方法がある。Integerto_iより厳密なチェックを行う点が異なる。例えば、Integerは、文字列が与えられた場合に、整数に変換できない文字列に対しては例外を発生させる。以下のコードはその例である。

p "10_".to_i #=> 10
p Integer("10_") #=> ArgumentError

同様に、Rubyではオブジェクトを浮動小数点数に変換するメソッド名にto_fを使う慣例になっている。また組み込み関数Floatは厳密なチェックでオブジェクトを浮動小数点数に変換する。

p "12.3".to_f #=> 12.3
p Float("12.3") #=> 12.3

p "10.0_".to_f #=> 10.0
p Float("10.0_") #=> ArgumentError