我有(1000..0)
这样的范围,而我使用的是each
,但它没有做任何事情。我试图将它转换为数组并获得一个空数组。
我也试过(1000..0).step(-1).each
,它告诉我step cant be negative
...
有没有办法使用(1000..0).each
所以它会重复,或转换为像[1000,999,998,...,0]
这样的数组?
答案 0 :(得分:4)
1000.downto(0).each { |i| ... }
答案 1 :(得分:0)
(0..1000).to_a.reverse
这将创建所需的数组。
答案 2 :(得分:0)
你可能会采取两种方式:
(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
答案 3 :(得分:0)
#1000 item array
step_down_array = 1000.step(0, -1).to_a
#small enumerator:
step_down = 1000.step(0, -1)