我有一个范围(1000..0)
,我正在使用each
,但它没有做任何事情。我试图将其转换为数组并得到一个空数组。
我也试过(1000..0).step(-1).each
了,它告诉我step cant be negative
...
有什么方法可以使用(1000..0).each
,所以它会做重复,或者转换成一个像这样的数组[1000,999,998,...,0]
?
我有一个范围(1000..0)
,我正在使用each
,但它没有做任何事情。我试图将其转换为数组并得到一个空数组。
我也试过(1000..0).step(-1).each
了,它告诉我step cant be negative
...
有什么方法可以使用(1000..0).each
,所以它会做重复,或者转换成一个像这样的数组[1000,999,998,...,0]
?
1000.downto(0).each { |i| ... }
(0..1000).to_a.reverse
这将创建所需的数组。
您可以通过两种方式来执行此操作:
(0..1000).each do |i|
n = 1000 - i
# Use n for all calculations
end
(0..1000).to_a.reverse.each do |n|
# Involves creating temporary array, but overhead is usually minor for
# relatively small numbers.
end
不要忘记您也可以在没有范围的情况下执行此操作:
1001.times do |i|
n = 1000 - i
end
#1000 item array
step_down_array = 1000.step(0, -1).to_a
#small enumerator:
step_down = 1000.step(0, -1)