integer型の結果を表示する際の例
# 外部APIから取得したデータをシミュレートする
api_response = {
user_id: 123,
usage_count: nil # APIレスポンスにusage_countが含まれていない場合
}
# usage_countを整数に変換する。
usage_count = api_response[:usage_count]
puts "ユーザーID: #{api_response[:user_id]}"
puts "使用回数: #{usage_count} 回"
例えば、外部APIから取得したレスポンスにuser_idとusage_countが含まれているとします。
ただ、usage_conutがレスポンスに含まれていない場合usage_countはnilとなります。
この際に、usage_countをnilという表示するのは避けたいです。
そんなときに、to_iが力を発揮します。
to_iとは
to_iメソッドはRuby標準ライブラリです。
to_iは文字列の数値をinteger(整数)に変換してくれます。
to_iの挙動は以下のようになります。
文字列からinteger(整数)に変換
数値が文字列に含まれていれば返します。文字列ならば0を返します。
そして、数値+数値以外の文字列の場合は数値のみ返します。
"123".to_i #=> 123
"abc".to_i #=> 0
"12abc".to_i #=> 12
浮動小数点からinteger(整数)に変換
浮動小数点の場合は小数点以下は切り捨てられます。
12.34.to_i #=> 12
その他の場合
nilの場合は0を返し、trueの場合は1、falseの場合は0を返します。
nil.to_i #=> 0
true.to_i #=> 1
false.to_i #=> 0
基数変換
また()の中に進数を指定することで基数に基づいてinteger(整数)に変換されます。
"ff".to_i(16) #=> 255
"1010".to_i(2) #=> 10
まとめ
冒頭で述べたものでは
# 外部APIから取得したデータをシミュレートする
api_response = {
user_id: 123,
usage_count: nil # APIレスポンスにusage_countが含まれていない場合
}
# usage_countを整数に変換する。nilの場合は0として扱う
usage_count = api_response[:usage_count].to_i
puts "ユーザーID: #{api_response[:user_id]}"
puts "使用回数: #{usage_count} 回"
api_response[:usage_count].to_i
とto_iをつけることでnilを0に変換でき、表示結果をnilの場合は0とすることができます。
to_iにはこのような使い方もあるので、ご参考にしてください。