怪异的"尝试呼叫字段"抽屉"(表值)"错误

时间:2016-06-17 07:05:12

标签: lua compiler-errors love2d

大约一年前我正在研究这个项目。我回到它,现在它在我运行时抛出错误,错误是"尝试调用字段"抽屉"(表值)"。

这是抽屉字段的位置

local Renderer = {}

local num_of_layers = 2
local insert = table.insert
local remove = table.remove


function Renderer:create()
    local render = {}

    render.drawers = {}
    for i  = 0, num_of_layers do
        render.drawers[i] = {}
    end

    function render:addRenderer(obj, layer)
        local l = layer or 0
        insert(self.drawers(l), i, obj)
    end

    return render
end

return Renderer

这就是它被称为

的地方
local tlm = {}

function tlm:load()
     renderer:addRenderer(self)
     gameloop:addLoop(self)
end

1 个答案:

答案 0 :(得分:0)

这是不正确的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div">
  <input name="input1" value="input1_value">
  <textarea name="textarea1">textarea_value</textarea>
</div>

insert(self.drawers(l), obj) 不是函数,而是表。因此,像self.drawers这样的函数调用会导致错误。

如果你想使用Luas标准函数在索引l处向表self.drawer插入一个元素,你应该调用:

self.drawers(1)

如果要替换索引l处的值,只需编写table.insert(self.drawers, i, obj)

即可

http://www.lua.org/manual/5.3/manual.html#pdf-table.insert