从嵌入式表中获取值 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
。请注意,destGUID2
和 catagory1
需要用引号引起来,因为它们是字符串。
我是 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
。请注意,destGUID2
和 catagory1
需要用引号引起来,因为它们是字符串。