数字だけの文字列に注意

Rubyで、数字だけの文字列が出てきたとき、Perlの数値コンテキストの気分になっちゃうとエラーになるので注意。

[ "314", "159", "265", "358" ].each do |n|
  puts n + 1
end
#=> in `+': can't convert Fixnum into String (TypeError)

Kernel#Integerを使って整数に直します。

[ "314", "159", "265", "358" ].each do |s|
  puts Integer(s) + 1
end

または、String#to_iを使って整数に直します。

[ "314", "159", "265", "358" ].each do |s|
  puts s.to_i + 1
end

以上は恣意的な例ですね。もっと自然なのはこう。

[ 314, 159, 265, 358 ].each do |n|
  puts n + 1
end

…まあ、これも恣意的ですけれどね。てへ♪