【发布时间】:2013-12-09 21:45:44
【问题描述】:
我想在某些情况下退出 Lua 脚本的执行。 示例:
内容 = 获取内容() 如果不满足,那么 - (这里我想要某种退出功能) 下一个内容 = 获取内容() --example 有很多进一步的检查在这里我希望如果我没有获得内容我的脚本应该终止不应该去检查下一个。
【问题讨论】:
-
os.exit()就是这样做的。
标签: lua
我想在某些情况下退出 Lua 脚本的执行。 示例:
内容 = 获取内容() 如果不满足,那么 - (这里我想要某种退出功能) 下一个内容 = 获取内容() --example 有很多进一步的检查在这里我希望如果我没有获得内容我的脚本应该终止不应该去检查下一个。
【问题讨论】:
os.exit() 就是这样做的。
标签: lua
如果您的脚本是嵌入的,则使用 os.exit() 或仅来自某个“主”函数的 return。
【讨论】:
os.exit()
通过发送信号杀死进程
do return end
停止执行
如果你想在解释器中编写和执行一些 luacode,然后通过使用-i 标志启动程序来停止执行,这两种方法是不相等的。
th -i main.lua
【讨论】:
从lua api doc 中提取:
出于语法原因,break 或 return 只能作为块的最后一条语句出现(换句话说,作为块中的最后一条语句,或者就在 end、else 或 until 之前)。例如,在下一个示例中,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
【讨论】:
在 lua 5.2.0-beta-rc1+ 中,您可以在代码末尾添加一个名为 ::exit:: 或类似名称的标签,然后当您需要退出程序时,只需像这样调用它:
goto exit
【讨论】:
::exit:: 是什么意思,这是错字吗?我不认为这是正确的 lua 语法。