Lua的lua_resume和lua_yield参数的目的是什么?

2026-04-01 19:251阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计371个文字,预计阅读时间需要2分钟。

Lua的lua_resume和lua_yield参数的目的是什么?

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

Lua的lua_resume和lua_yield参数的目的是什么?

本文共计371个文字,预计阅读时间需要2分钟。

Lua的lua_resume和lua_yield参数的目的是什么?

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

Lua的lua_resume和lua_yield参数的目的是什么?