如何理解lua中的“resume 返回除了 true 以外的其他部分将作为参数传递给相应的 yield”

Iceyer
  • 322

对应示例代码如下:

co = coroutine.create(function ()
    print("co", coroutine.yield())
end)

coroutine.resume(co)

coroutine.resume(co, 4, 5)

这里可以理解为resume将输入参数作为对应yield的输出参数吗?

PS:输出结果为
co 4 5

回复
阅读 3.6k
1 个回答
✓ 已被采纳

resume 返回除了 true 以外的其他部分将作为参数传递给相应的 yield

这句可能是翻译的,不是很顺,大概的意思是:resume的返回值中除了 true 以外的其他部分将作为参数传递给相应的 yield。

换言之,coroutine.resume会返回true,以及一组传给yield的参数。(当然如果碰到没做预防措施的错误,会返回false和错误信息。)

这里可以理解为resume将输入参数作为对应yield的输出参数吗?

是的。coroutine.resume(co, 4, 5),其中4, 5会被传递给yield,然后yield会返回4, 5

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏