如何退出Lua脚本的执行

时间:2013-11-25 09:22:41

标签: lua

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

content = get_content()
if not content then   
-- ( Here i want some kind of exit function )
next_content = get_content()
--example there can lot of further checks

我希望如果我没有获得内容,我的脚本假设要终止,不应该去检查下一个。

4 个答案:

答案 0 :(得分:47)

如果您的脚本是嵌入的,请使用os.exit()或仅使用某些“main”函数中的return

答案 1 :(得分:16)

os.exit()

通过发送信号来终止进程

do return end

停止执行

如果要在使用-i标志启动程序停止执行后在解释器中编写并执行某些luacode,则这两种方法不相等。

th -i main.lua

答案 2 :(得分:8)

摘自lua api doc

出于语法原因,中断或返回只能作为块的最后一个语句出现(换句话说,作为块中的最后一个语句或者在结束之前,在else之前或者之前)。例如,在下一个示例中,break是then块的最后一个语句。

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

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

function foo ()
  return          --<< SYNTAX ERROR
  -- `return' is the last statement in the next block
  do return end   -- OK
  ...             -- statements not reached
end

答案 3 :(得分:1)

在lua 5.2.0-beta-rc1 +中,您可以在代码末尾添加一个名为::exit::的标签,或者类似的东西,然后只要您需要退出程序,就像这样调用它:

goto exit