如何退出 Lua 脚本的执行?

我想要在某些条件下退出 Lua 脚本的执行。

例如:

content = get_content()
if not content then
-- (这里我想要一种退出函数)
next_content = get_content()
--例如,还可以进行许多进一步的检查

在这里,如果我没有获得内容,我的脚本应该终止,不应该转到下一个检查点。

点赞
用户936986
用户936986

如果您的脚本被嵌入(embedded),请使用 os.exit() 或只需从某个“main”函数中使用 return

2013-11-25 09:28:19
用户2610019
用户2610019

lua api文档中提取:

由于语法原因,breakreturn语句只能出现在块的最后一个语句中(换句话说,出现在您的chunk的最后一个语句或在endelseuntil之前)。例如,在下一个示例中,breakthen块的最后一个语句。

local i = 1
while a[i] do
  if a[i] == v then break end
  i = i + 1
end

通常,这些是我们使用这些语句的地方,因为它们后面的任何其他语句都是无法执行的。但是,有时候,在一个块中间编写return(或break)可能是有用的;例如,如果您正在调试函数并想要避免其执行。在这种情况下,您可以在语句周围使用一个显式的do块:

function foo ()
  return          --<< 语法错误
  -- `return'是下一个块中的最后一个语句
  do return end   -- OK
  ...             -- 不可到达的语句
end
2013-11-25 09:55:10
用户2203643
用户2203643

停止进程

通过发送信号来终止进程

停止执行

这两种方法并不相同,如果您想在使用-i标志启动程序后,在解释器中编写和执行一些lua代码,停止执行。

th -i main.lua
2013-11-26 13:51:30
用户88888888
用户88888888

在lua 5.2.0-beta-rc1+中,你可以在你的代码结尾添加一个叫::exit::的标签或类似的内容,然后每当你需要退出程序时,只需像这样调用它:

goto exit
2016-06-07 21:05:25