Syntax Lua,表格转换成数字了吗?

Syntax Lua,表格转换成数字了吗?,syntax,lua,lua-table,Syntax,Lua,Lua Table,我只是简单地把数字加在一起,但它仍然会出错。我使用type()检查vector是否是一个表,它总是说它是一个表,但它继续说它是一个数字 有人能告诉我为什么会发生这种情况以及解决方法吗(变量vector是vector3对象)?非常感谢您的帮助 矢量3: function new(x, y, z) return setmetatable({x = x, y = y, z = z}, meta) --{} has public variables end 此处的所有矢量3文件: 错误: 尝试索引

我只是简单地把数字加在一起,但它仍然会出错。我使用
type()
检查
vector
是否是一个表,它总是说它是一个表,但它继续说它是一个数字

有人能告诉我为什么会发生这种情况以及解决方法吗(变量
vector
是vector3对象)?非常感谢您的帮助

矢量3:

function new(x, y, z)
  return setmetatable({x = x, y = y, z = z}, meta) --{} has public variables
end
此处的所有矢量3文件:

错误:

尝试索引本地“向量”(数值)

脚本:

function translate(object, x, y, z)
    for i, v in pairs(object) do
        if (i == "Vertices") then
            for _, q in pairs(v) do
                for l, vector in pairs(q) do
                    vector.x = vector.x + x;
                    vector.y = vector.y + y;
                    vector.z = vector.z + z;
                end
            end
        end
    end
end

让我们通过删除循环开关反模式来重构代码:

function translate(object, x, y, z)
    for _, q in pairs(object.Vertices) do
        for l, vector in pairs(q) do
            -- Test the type of vector here...
            vector.x = vector.x + x;
            vector.y = vector.y + y;
            vector.z = vector.z + z;
        end
    end
end
因此,访问
object.Vertices[\u][l].x时会发生错误


这将是一个奇怪的顶点列表,其中包含顶点列表的列表。

您在哪里使用
type
检查代码中的类型?您认为您可以想出一个更小的、自包含的示例吗?链接可能会在未来腐烂,100行是一个更大的一面有点快看。我猜您会在最内层范围的第一行得到错误。您确定
object.Vertices
包含点列表,而不仅仅是点列表吗?另外,我确信,这是循环开关反模式到Lua.Deduplicator的一个很好的转换。我在第二和第三对
循环中都使用了
type()
。并且,
object.Vertices
包含包含x、y和z坐标的向量3(表)。