我是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"
答案 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
。请注意,destGUID2
和catagory1
必须在引号中,因为它们是字符串。