Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 退出并重新启动Lua中的函数_Function_Lua - Fatal编程技术网

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

Function 退出并重新启动Lua中的函数,function,lua,Function,Lua,我的问题是我有一个函数a(),我需要在特定时间无条件退出。我的问题是如何实现无条件退出函数的目标 Example: local function a() --Do Stuff end a() 换句话说,有没有一种方法可以用一个命令退出函数:return、coroutine.yield(如果函数作为一个coroutine执行)和error()调用(可以用函数周围的pcall来捕获) 我不知道你所说的“无条件退出函数”是什么意思,但这些选项中的一个应该对你有用,因为没有其他可用选项

我的问题是我有一个
函数a()
,我需要在特定时间无条件退出。我的问题是如何实现无条件退出函数的目标

Example:

 local function a()
   --Do Stuff
 end

 a()

换句话说,有没有一种方法可以用一个命令退出函数:
return
coroutine.yield
(如果函数作为一个coroutine执行)和
error()
调用(可以用函数周围的
pcall
来捕获)

我不知道你所说的“无条件退出函数”是什么意思,但这些选项中的一个应该对你有用,因为没有其他可用选项。(您也可以使用debug hook并从中调用
error()
,而无需修改函数代码,但我认为您的情况下不需要这样做。)

是:

function a()
    -- do stuff
    if time_to_exit then
        return 
    end
    -- do more stuff
end

退出的时间可以是您想要的任何内容:检查某个内容是否为真或非零,或者检查该时间是否已过,等等。详细信息取决于您想要实现的目标(如果您需要更多详细信息,请澄清您的帖子,并对此答案发表评论,以便我知道)

do return end
放置在函数中的任意位置,当到达时,将无条件退出函数

function a()
    -- some stuff
    do return end
    -- some more stuff (that won't execute)
end

谢谢,这正是我想要的!