我有一些代码想要从函数中获取一些额外的返回值,然后将它们转发给:
local ok, ... = coroutine.resume(co)
do_stuff(ok)
return ...
但是,这不会运行,因为...
变量赋值是语法错误。
我可以通过使用旧的“函数参数和变量是等效的”技巧和立即调用的函数来解决这个限制
return (function(ok, ...)
do_stuff(ok)
return ...
)(coroutine.resume(co))
但我想这样做不会很惯用或有效。有没有更合理的方法来解决这个处理resume
调用返回的剩余值的问题?
编辑:顺便说一句,这需要使用nil
额外参数中的值
EDIT2:看起来使用立即调用的函数一直是最好的方法。