Lua的lua_resume和lua_yield参数的目的是什么?
- 内容介绍
- 相关推荐
本文共计371个文字,预计阅读时间需要2分钟。
lua_resume 和 lua_yield 的参数传递目的是为了在协程之间交换控制权,并携带必要的状态信息。
在第一次调用 lua_resume 时,参数确实被传递给正在恢复的 Lua 函数。这是有道理的,因为此时 Lua 状态机正在从暂停状态恢复执行。
然而,对于 lua_resume 的后续调用,参数并不会自动更新。这意味着每次调用 lua_resume 时,都需要确保传递正确的参数,以便协程能够正确地更新其状态。
简而言之,对于 lua_resume 的每次调用,都需要更新传递给协程的参数,以确保协程能够正确地继续执行。
将参数传递给lua_resume和lua_yield的目的是什么?据我所知,在第一次调用lua_resume时,参数被传递给正在恢复的lua函数.这是有道理的.但是我希望对lua_resume的所有后续调用都会“更新”协程函数中的参数.然而事实并非如此.
将参数传递给lua_resume以使lua_yield返回的目的是什么?在协程下运行的lua函数是否可以访问lua_resume传递的参数?
尼科尔说.如果需要,您仍然可以保留第一次恢复呼叫的值:do local firstcall function willyield(a) firstcall = a while a do print(a, firstcall) a = coroutine.yield() end end end local coro = coroutine.create(willyield) coroutine.resume(coro, 1) coroutine.resume(coro, 10) coroutine.resume(coro, 100) coroutine.resume(coro)
将打印
1 1 10 1 100 1
本文共计371个文字,预计阅读时间需要2分钟。
lua_resume 和 lua_yield 的参数传递目的是为了在协程之间交换控制权,并携带必要的状态信息。
在第一次调用 lua_resume 时,参数确实被传递给正在恢复的 Lua 函数。这是有道理的,因为此时 Lua 状态机正在从暂停状态恢复执行。
然而,对于 lua_resume 的后续调用,参数并不会自动更新。这意味着每次调用 lua_resume 时,都需要确保传递正确的参数,以便协程能够正确地更新其状态。
简而言之,对于 lua_resume 的每次调用,都需要更新传递给协程的参数,以确保协程能够正确地继续执行。
将参数传递给lua_resume和lua_yield的目的是什么?据我所知,在第一次调用lua_resume时,参数被传递给正在恢复的lua函数.这是有道理的.但是我希望对lua_resume的所有后续调用都会“更新”协程函数中的参数.然而事实并非如此.
将参数传递给lua_resume以使lua_yield返回的目的是什么?在协程下运行的lua函数是否可以访问lua_resume传递的参数?
尼科尔说.如果需要,您仍然可以保留第一次恢复呼叫的值:do local firstcall function willyield(a) firstcall = a while a do print(a, firstcall) a = coroutine.yield() end end end local coro = coroutine.create(willyield) coroutine.resume(coro, 1) coroutine.resume(coro, 10) coroutine.resume(coro, 100) coroutine.resume(coro)
将打印
1 1 10 1 100 1

