首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua -指定coroutine库

Lua -指定coroutine库
EN

Stack Overflow用户
提问于 2013-10-22 14:07:59
回答 1查看 486关注 0票数 3

在我的Lua脚本中,我有多个使用相同“结构”的库。例如,我有包含a.lua和require('c')的内容。b.lua和c.lua都有一个信息函数。b.lua让它打印"b“,c.lua让它打印"c”。在a.lua中,我希望使用来自B.lua或C.lua的info()启动一个协同线。

这是我的b.lua:

代码语言:javascript
复制
b = {}
function b.info()
  coroutine.yield()
  print("b")
  print("b2")
end

C.lua有一个类似的结构,但大多数B是用C代替的。当尝试用local co = coroutine.create(b.info())启动协同线时(这也很奇怪,因为通常它开始挂起),我得到了一个错误,比如“尝试跨元方法/C调用边界屈服”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-22 15:12:05

coroutine.create(b.info())在恢复co之前调用b.info

您需要传递一个函数,而不是函数调用,如

代码语言:javascript
复制
local co = coroutine.create(b.info)
coroutine.resume(co)        -- prints nothing
coroutine.resume(co)        -- prints b, b2

代码语言:javascript
复制
co = coroutine.wrap(b.info)
co()
co()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19520213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档