从嵌入式表中获取值 Lua

Obtain values from embedded tables Lua

我是 Lua 的新手,我正在尝试学习如何使用嵌入式 table 制作函数。我一直在试图找出一种方法来使函数满足 table.

中的特定值

这是一个 table 的例子:

    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}}}

现在我想为此 table 创建一个函数,它只从特定的 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 -- returns value "A"
                end
            end
        end
    end
end

所以当我使用这个函数时,我可以做这样的事情:

    CatInfo(destGUID2,catagory1) -- returns "1"

鉴于您的 table 结构,您不需要进行任何循环;您可以简单地 return 基于 GUID 和类别的 table 中的值:

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 需要用引号引起来,因为它们是字符串。