Lua-C级过多(上限为200)

时间:2019-02-26 15:15:27

标签: lua

我最近遇到一个问题,我看到错误“ C级太多(限制为200)”。

这到底是什么意思,如何防止它发生?

我认为这与循环需求有关,但它指向我的代码中创建新类实例的一行,如下所示:

Class:new()

对于我的模块,我确实有一些循环要求,但是我试图通过将外部类移到同一模块中来修复它们,如下所示:

Class.SubClass = Class:new()

有什么想法吗?

更新

这是我遇到的一个例子:

Class.lua

local Class = {}

function Class:new(o)
    o = o or {}
    setmetatable(o, self)
    self.__index = self
    return o
end

return Class

classes / Entity.lua

local Class = require('Class')
local Player = require('classes/Player')

local Entity = Class:new()

function Entity:getPlayer() 
    return Player:new() 
end

return Entity

classes / Player.lua

local Class = require('Class')
local Entity = require('classes/Entity')

local Player = Class:new()

function Player:getEntities() 
    local entities = {}
    for i = 1, 100 do
        entities[i] = Entity:new()
    end
    return entities
end

return Player

我意识到这是一个循环依赖关系,但是我发现的唯一解决方案是:Lua: How to avoid Circular Requires,它使用全局变量。有办法避免与当地人发生这种情况吗?

0 个答案:

没有答案