为什么在ruby中没有向后循环工作?例如。因为我在10..1

时间:2011-10-09 17:16:38

标签: ruby range

  

可能重复:
  Is there a reason that we cannot iterate on “reverse Range” in ruby?

这就像魔法一样。

for i in 1..10
  ...
end

这种落后的for循环是否也应该是直观的?

for i in 10..1
  ...
end

如果有一些语法上的原因,为什么这不起作用,我觉得必须改变ruby以允许它。以这种方式向后写循环只是直观的。

2 个答案:

答案 0 :(得分:12)

尝试类似

的内容
10.downto(1) { |i| ... }

答案 1 :(得分:11)

1..10属于Range类,不直接与任何循环结构相关联。并且没有大于10且小于1的数字,因此范围10..1为空。

PS我不记得我最后一次在ruby中编写for循环的时间。也许来自http://www.ruby-doc.org/core-1.9.2/Enumerable.html的东西会更好地为你服务?