为什么不是[1..5] == [1,2,3,4,5]
?
为什么不是[1..5].to_a == [1,2,3,4,5]
?
如何从[1..5]
转换为[1,2,3,4,5]
?
[1..5]
是一个只有一个元素的数组,即范围对象1..5
[1..5].to_a
仍然是[1..5]
(1..5).to_a
是[1,2,3,4,5]
[1..5]
是一个只有一个元素的数组-一个范围对象,所有迭代它的尝试都将失败。数组中可以包含多种对象。在上面的例子中,我将范围视为一个范围,并直接从中生成任何数组。
1.9.3-p125 :008 > (1..5).to_a # Note regular parens.
=> [1, 2, 3, 4, 5]
1.9.3-p125 :009 >
要做更多密切你所说的-从[1.5]开始-你可以做:
1.9.3-p125 :013 > newarray = []
1.9.3-p125 :014 > [1..5][0].each {|e| newarray << e}
=> 1..5
1.9.3-p125 :015 > newarray
=> [1, 2, 3, 4, 5]
1.9.3-p125 :016 >