在我的Lua脚本中,我有多个库使用相同的“结构”。例如,我有一个a.lua文件,其中包含require('b')
和require('c')
。 b.lua和c.lua都有一个info函数。 b.lua让它打印“b”,而c.lua让它打印“c”。在a.lua中,我想要使用B.lua或C.lua的info()启动一个协程。
这是我的b.lua文件:
b = {}
function b.info()
coroutine.yield()
print("b")
print("b2")
end
C.lua拥有类似的结构,但大部分B被替换为C。当尝试使用local co = coroutine.create(b.info())
启动协程时(通常情况下应该是挂起状态),会出现错误“attempt to yield across metamethod/C-call boundary”。