为什么不是[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,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 >