从嵌入表Lua中获取值

时间:2015-01-27 15:55:38

标签: lua lua-table

我是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 -- returns value "A"
                end
            end
        end
    end
end

因此,当我使用此功能时,我可以这样做:

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

1 个答案:

答案 0 :(得分:2)

根据您的表结构,您不需要进行任何循环;您只需根据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必须在引号中,因为它们是字符串。