从内嵌表中获取值Lua

我是Lua的新手,正在尝试学习如何制作嵌入表的函数。我陷入了困境,试图找出一种使函数满足表格中特定值的方法。

这是一个表格的例子:

    TestTable = {destGUID1 = {catagory1 = {A=1,B=5,C=3},catagory2 = {A=5,B=3,C=2}},destGUID2 = {catagory1 = {A=1,B=5,C=3},catagory2 = {A=5,B=3,C=2}}}

现在,我希望为这个表格制作一个函数,仅从特定的destGUID中提取值。像这样:

function CatInfo(GUID,Cat)
    for i=1, #TestTable do
        if TestTable[i] == GUID then
            for j=1, TestTable[i][GUID] do
                if TestTable[i][GUID][j] == Cat then
                    return TestTable[i][GUID][Cat].A -- 返回值“A”
                end
            end
        end
    end
end

这样当我使用这个函数时,就可以这样做:

    CatInfo(destGUID2,catagory1) -- 返回“1”
点赞
用户1442917
用户1442917

根据你的表结构,你不需要进行任何循环;你可以基于 GUID 和类别直接从表中返回值:

TestTable = {
  destGUID1 = {catagory1 = {A=1,B=5,C=3},catagory2 = {A=5,B=3,C=2}},
  destGUID2 = {catagory1 = {A=1,B=5,C=3},catagory2 = {A=5,B=3,C=2}}
}
function CatInfo(GUID,Cat)
  return TestTable[GUID][Cat].A
end
print(CatInfo('destGUID2','catagory1'))

这将打印 1。请注意,destGUID2catagory1需要用引号括起来,因为它们是字符串。

2015-01-27 17:10:13