退出并重新启动Lua中的函数

时间:2015-01-11 06:34:19

标签: function lua

我的问题是我有function a()我需要在某些时候无条件退出。我的问题是如何实现无条件退出函数的目标。

Example:

 local function a()
   --Do Stuff
 end

 a()

换句话说,有没有办法用一个命令退出a()

3 个答案:

答案 0 :(得分:5)

“退出”函数的方法很少:returncoroutine.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