【问题标题】:Why doesn't backward for loop work in ruby? eg. for i in 10..1 [duplicate]为什么不向后循环在 ruby​​ 中工作?例如。对于 10..1 中的 i [重复]
【发布时间】:2011-12-04 01:03:47
【问题描述】:

可能重复:
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​​ 以允许它。以这种方式向后编写 for 循环很直观。

【问题讨论】:

  • 您是否正在寻找实际的解决方法或它不起作用的原因?
  • 只是想知道为什么它不起作用。我知道其他选择。
  • @closevoters:新手问题很公平。当我开始编写 Ruby 时,我希望 10..1 能够工作。

标签: ruby range


【解决方案1】:

试试类似的东西

10.downto(1) { |i| ... }

【讨论】:

    【解决方案2】:

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

    PS 我不记得我最后一次用 ruby​​ 编写 for 循环是什么时候了。也许来自http://www.ruby-doc.org/core-1.9.2/Enumerable.html 的东西会更好地为您服务?

    【讨论】:

    • 谢谢。当我使用 Rails 时,我从来没有遇到过使用一段时间。我只是想尝试用 Ruby 编写不同的排序方法,并花了一些时间试图找出我哪里出错了。事实证明我不能那样向后循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2020-02-02
    • 2014-08-09
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多