0

のような範囲があり、(1000..0)使用してeachいましたが、何もしません。それを配列に変換しようとして、空の配列を取得しました。

私も試し(1000..0).step(-1).eachてみましたが、それは私に教えてくれstep cant be negativeます...

(1000..0).each繰り返しを行うか、のような配列に変換するように使用する方法はあります[1000,999,998,...,0]か?

4

4 に答える 4

4
1000.downto(0).each { |i| ... }        
于 2013-02-11T18:14:09.030 に答える
0
#1000 item array
step_down_array = 1000.step(0, -1).to_a

#small enumerator:
step_down = 1000.step(0, -1)
于 2013-02-11T19:16:50.483 に答える
0

(0..1000).to_a.reverse これにより、必要な配列が作成されます。

于 2013-02-11T18:10:07.823 に答える
0

これを行うには、次の 2 つの方法があります。

(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
于 2013-02-11T18:10:56.883 に答える