有办法吗?
A和B)require相互配合C)可以使用A但不能使用BegC.lua:
local A = require 'A'
-- ...
A.foo()
Run Code Online (Sandbox Code Playgroud)
D需要B但不需要A和/或E要求两个A和BA也不是B,也没有他们的成员应该被加入到全局命名空间.module和setfenv函数(Lua 5.2中不推荐使用)相关:Lua - 我如何使用另一个lib?(注意:此解决方案不处理循环依赖.)
我最近遇到了一个问题,我看到错误“太多 C 级别(限制为 200)”。
它到底意味着什么?我该如何防止这种情况发生?
我认为这与循环需求有关,但它指向我的代码中创建类的新实例的一行,如下所示:
Class:new()
Run Code Online (Sandbox Code Playgroud)
至于我的模块,我确实有一些循环需求,但我尝试通过将外部类移动到同一个模块中来修复它们,如下所示:
Class.SubClass = Class:new()
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
更新:
这是我遇到的一个例子:
lua类
local Class = {}
function Class:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
return Class
Run Code Online (Sandbox Code Playgroud)
类/Entity.lua
local Class = require('Class')
local Player = require('classes/Player')
local Entity = Class:new()
function Entity:getPlayer()
return Player:new()
end
return Entity
Run Code Online (Sandbox Code Playgroud)
类/Player.lua
local Class = require('Class')
local Entity = require('classes/Entity')
local Player = Class:new()
function Player:getEntities()
local entities = {}
for i = 1, 100 …Run Code Online (Sandbox Code Playgroud)