当我使用collect(&:to_i)
将字符串数组更改为整数数组时,如果索引位置0处的字符串为“0”,则在转换数组时将删除它。例如:
n = "0123456789"
number = n.split
array = number.collect(&:to_i)
=> [123456789]
砍掉领先的0。
但是,如果我这样做:
n = "1230456789"
number = n.split
array = number.collect(&:to_i)
=> [1230456789]
它将0留在原地。
为什么collect
在0位置时删除0,但在数组中的任何其他位置时将其单独删除?
答案 0 :(得分:1)
查看第一个示例中的数字。它是一个单元素数组。因此,这会产生一个包含一个元素的数组:"0123456789".to_i
试试这个:
n = "0 1 2 3 4 5 6 7 8 9"
numbers = n.split
array = numbers.collect(&:to_i)