可能重複:
Is there a reason that we cannot iterate on 「reverse Range」 in ruby?爲什麼不在Ruby中循環工作?例如。因爲我在10..1
這就像魔術。
for i in 1..10
...
end
難道這只是後退for循環的工作嗎?
for i in 10..1
...
end
如果有一些語法上的原因,爲什麼這不起作用,我覺得像ruby必須改變,以允許它。這種方式直接寫回來循環。
可能重複:
Is there a reason that we cannot iterate on 「reverse Range」 in ruby?爲什麼不在Ruby中循環工作?例如。因爲我在10..1
這就像魔術。
for i in 1..10
...
end
難道這只是後退for循環的工作嗎?
for i in 10..1
...
end
如果有一些語法上的原因,爲什麼這不起作用,我覺得像ruby必須改變,以允許它。這種方式直接寫回來循環。
1..10
屬於類Range,不與任何循環結構直接鏈接。並且沒有數字都大於10且小於1,因此範圍10..1
爲空。
PS我不記得是什麼時候我最後一次寫Ruby for Ruby的循環。也許http://www.ruby-doc.org/core-1.9.2/Enumerable.html會爲您提供更好的服務?
很好的解釋。 – Problematic
謝謝。當我使用Rails的時候,我從來沒有必要偶爾使用它。我只是想嘗試用Ruby編寫不同的排序方法,並花了一些時間試圖找出我出錯的地方。原來我無法以這種方式向後循環。 –
嘗試像
10.downto(1) { |i| ... }
您是否在尋找解決方法的實際或者爲什麼它不工作的原因? – slhck
只是想知道爲什麼它不起作用。我知道其他的選擇。 –
@closevoters:足夠的新手問題。當我開始編程Ruby時,我期望'10..1'工作。 –