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())
(通常は一時停止が開始されるため、これも奇妙です)、「メタメソッド/C 呼び出しの境界を越えて譲歩しようとしています」のようなエラーが表示されます"。