1

我想要使​​用 Ruby (RoR) 的以下情况的代码:

 line no: 09
line no: 10         if(@yyyyy == nil)
line no: 11            do some operation here
line no: 12             then goto line no 10
line no: 13         end
l

我尝试使用next, break, & goto,但没有任何效果。

是否有任何关键字/语句来满足我的场景?

4

3 回答 3

7

Ruby 默认不支持它,如果您将代码提交到http://codereview.stackoverflow.com,我相信他们会帮助您重写/重构代码。

您可能可以使用该redo命令来模拟您想要的。“编程 Ruby” 说:

redo 从开始重复循环的当前迭代,但不重新评估条件或获取下一个元素(在迭代器中)。

也就是说,“笑话在我们身上:Ruby 1.9 如何支持 Goto 语句”将让您深入了解在 Ruby 中实际使用“goto”,但是,此时,您的代码将无法移植或在“库存”中使用“鲁比。

于 2013-02-04T05:13:32.817 回答
1

请检查以下网址:

http://patshaughnessy.net/2012/2/29/the-joke-is-on-us-how-ruby-1-9-supports-the-goto-statement

根据许多专业程序员的说法,使用 goto 语句是一种不好的做法。

于 2013-02-04T05:34:46.303 回答
0
catch :foo do
  for (aaa in @xxxxx)
    if(@xxxxx == nil)
      do some operation here
      throw :foo
    end
    for (bbb in @yyyyy)
      if(@yyyyy == nil)
        do some operation here
        throw :foo
      end
    end
    for (ccc in @zzzzz)
      if(@zzzzz == nil)
        do some operation here
        throw :foo
      end
    end
  end
end
于 2013-02-04T06:28:43.303 回答