【问题标题】:Lua goto statement to simulate continue raised errorLua goto 语句模拟 continue 引发的错误
【发布时间】:2021-04-02 16:12:45
【问题描述】:

一般来说,我的目标是模拟 Lua 中不存在的 continue 语句。我已经阅读了一些关于使用 goto 来执行此操作的线程。我试过了:

for i=0, 9, 1 do
    if i<5 then goto skip end
    print(i)
    ::skip::
end

它引发了“lua: test.lua:2: '=' expected near 'skip'”

有什么解决方法吗?提前致谢

【问题讨论】:

  • 你使用的是什么版本的 Lua?你确定是 5.2 吗?
  • 我使用的是 5.1 版,那它已经可用了吗?
  • 哦,基于它刚刚从 5.2 开始添加的参考。我的错。
  • 我当前的版本有什么方法可以达到同样的效果吗? @NicolBolas

标签: lua continue


【解决方案1】:

您可以使用repeat .... until truebreak 的组合来模拟continue(在一定程度上)(适用于Lua 5.1+):

for i=0, 9, 1 do repeat
    if i<5 then break end
    print(i)
until true end

请注意,它使break 的行为与continue 一样,因此您不能按其正常含义使用它。有关更多详细信息和替代解决方案,请参阅this SO question

【讨论】:

  • 这就是我要找的!谢谢楼主
猜你喜欢
  • 2013-04-09
  • 1970-01-01
  • 2010-10-02
  • 2011-10-09
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多