我的问题是我有function a()
我需要在某些时候无条件退出。我的问题是如何实现无条件退出函数的目标。
Example:
local function a()
--Do Stuff
end
a()
换句话说,有没有办法用一个命令退出a()
?
答案 0 :(得分:5)
“退出”函数的方法很少:return
,coroutine.yield
(如果函数作为协程执行)和error()
调用(可以使用函数周围pcall
。
我不确定“无条件退出函数”是什么意思,但其中一个选项应该对你有用,因为没有别的东西可用。 (您也可以使用调试挂钩并从中调用error()
而无需修改您的功能代码,但我不希望您的情况需要这样做。)
答案 1 :(得分:2)
是的:
function a()
-- do stuff
if time_to_exit then
return
end
-- do more stuff
end
time_to_exit
可以是你想要的任何东西:检查某些东西是真的还是非零的,或者检查时间是否已经过去等等。细节实际上取决于你想要达到的目标(如果你需要更多的细节) ,澄清你的帖子,并对这个答案发表评论,所以我知道)。
答案 2 :(得分:1)
do return end
将无条件地在到达时退出函数。
function a()
-- some stuff
do return end
-- some more stuff (that won't execute)
end