for文を使う方法
strings = ["1", "2", "3", "4", "5"]
integers = []
for n in strings
integers.push(n.to_i)
end
# integers => [1, 2, 3, 4, 5]
mapメソッドを使う方法
strings = ["1", "2", "3", "4", "5"]
integers = strings.map{|n| n.to_i}
# integers => [1, 2, 3, 4, 5]
または、
strings = ["1", "2", "3", "4", "5"]
integers = strings.map(&:to_i)
# integers => [1, 2, 3, 4, 5]
でもOKです。配列の各値が&
となり、:メソッド名
が適用されます。
なお、map
をmap!
(破壊的メソッド)にすると、レシーバー(strings)自体が整数の配列に上書きされます。
strings = ["1", "2", "3", "4", "5"]
strings.map!(&:to_i)
# strings => [1, 2, 3, 4, 5]