我尝试使用范围和each
向后迭代
(4..0).each do |i|
puts i
end
==> 4..0
通过0..4
迭代写入数字。在另一个范围内,r = 4..0
似乎是好的,r.first == 4
,r.last == 0
。
上面的构造没有产生预期的结果,这对我来说似乎很奇怪。这么做的原因是什么?在什么情况下,这种行为是合理的?
发布于 2014-01-14 04:17:04
向后迭代范围的(0..1).reverse_each
怎么样?
发布于 2010-01-15 17:49:09
使用each
遍历Ruby语言中的范围时,会对范围中的第一个对象调用succ
方法。
$ 4.succ
=> 5
5在范围之外。
你可以用这个技巧来模拟反向迭代:
(-4..0).each { |n| puts n.abs }
John指出,如果跨度为0,这将不起作用。这将:
>> (-2..2).each { |n| puts -n }
2
1
0
-1
-2
=> -2..2
我不能说我真的喜欢他们中的任何一个,因为他们有点模糊了意图。
发布于 2014-06-09 18:26:06
另一种方式是(1..10).to_a.reverse
https://stackoverflow.com/questions/2070574
复制相似问题