我想在某些条件下退出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
我希望如果我没有获得内容,我的脚本假设要终止,不应该去检查下一个。
答案 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