Duck Typing?


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

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


というか、整数として処理したければ、オブジェクトがto_iという振る舞いを持っていることを期待してなんでもとにかくto_iしてしまうのがDuck Typingなのかなと思いました。

def plus_one(ary)
  ary.each do |i|
    puts i.to_i + 1
  end
end

それでNoMethodErrorならオブジェクトにto_iを教えてやれと。