如何从 Lua 中的 table 获取值
How to get value from the table in Lua
我有 table 多个值,我想打印每个值。
要像:
'value_1' 'value_2' etc..
table = {
{'value_1'},
{'value_2'},
{'value_3'},
{'value_4'},
}
我试过 for k, v
但失败了:
for k, v in pairs(table) do
print(v)
end
您 table 的值是 table 本身。所以试试这个:
for k, v in pairs(table) do
print(v[1])
end
或者创建一个更简单的 table 并使用您的原始代码:
table = {
'value_1',
'value_2',
'value_3',
'value_4',
}
我不确定您的示例是否是生产代码,但您可以进行一些优化(虽然很小):
-使 table 成为局部变量(即:local table = {};
-删除不必要的 tables (即): {'value1'};
>> 'value1';
- 将 k,v 循环更改为通用的 for 循环(我相信这样会更有效率?)。
最终代码(如我所说):
local Table = {
"value_1";
"value_2";
"value_3";
"value_4";
};
for Key = 1, #Table, 1 do
print(Table[Key]);
end;
如有任何问题,请随时提出。哦,如果你计划多次使用 运行 这段代码,请考虑将 local print = print;
放在你的代码之上以定义一个局部变量(它们更快)。
当您有子 table 时,您正在使用多维数组。您可以像下面这样索引子 table。
local tab = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
for i, v in next, tab do
print(i, v)
for n, k in next, v do
print(">", n, k)
end
end
-- 1 table: 000001
-- > 1 1
-- > 2 2
-- > 3 3
-- 2 table: 000002
-- > 1 4
-- > 2 5
-- > 3 6
-- 3 table: 000003
-- > 1 7
-- > 2 8
-- > 3 9
要在没有 for 循环的情况下索引上面的 table,您可以使用 []。
print(tab[1][1]) --> 1
print(tab[1][2]) --> 2
print(tab[2][1]) --> 4
print(tab[2][2]) --> 5
您不受数字索引的限制。您可以使用字符串和一种特殊的方式对其进行索引。
local tab = {
x = 5,
y = 10,
[3] = 15
}
print(tab.x, tab["y"], tab[3]) --> 5 10 15
我有 table 多个值,我想打印每个值。
要像:
'value_1' 'value_2' etc..
table = {
{'value_1'},
{'value_2'},
{'value_3'},
{'value_4'},
}
我试过 for k, v
但失败了:
for k, v in pairs(table) do
print(v)
end
您 table 的值是 table 本身。所以试试这个:
for k, v in pairs(table) do
print(v[1])
end
或者创建一个更简单的 table 并使用您的原始代码:
table = {
'value_1',
'value_2',
'value_3',
'value_4',
}
我不确定您的示例是否是生产代码,但您可以进行一些优化(虽然很小):
-使 table 成为局部变量(即:local table = {};
-删除不必要的 tables (即): {'value1'};
>> 'value1';
- 将 k,v 循环更改为通用的 for 循环(我相信这样会更有效率?)。
最终代码(如我所说):
local Table = {
"value_1";
"value_2";
"value_3";
"value_4";
};
for Key = 1, #Table, 1 do
print(Table[Key]);
end;
如有任何问题,请随时提出。哦,如果你计划多次使用 运行 这段代码,请考虑将 local print = print;
放在你的代码之上以定义一个局部变量(它们更快)。
当您有子 table 时,您正在使用多维数组。您可以像下面这样索引子 table。
local tab = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
for i, v in next, tab do
print(i, v)
for n, k in next, v do
print(">", n, k)
end
end
-- 1 table: 000001
-- > 1 1
-- > 2 2
-- > 3 3
-- 2 table: 000002
-- > 1 4
-- > 2 5
-- > 3 6
-- 3 table: 000003
-- > 1 7
-- > 2 8
-- > 3 9
要在没有 for 循环的情况下索引上面的 table,您可以使用 []。
print(tab[1][1]) --> 1
print(tab[1][2]) --> 2
print(tab[2][1]) --> 4
print(tab[2][2]) --> 5
您不受数字索引的限制。您可以使用字符串和一种特殊的方式对其进行索引。
local tab = {
x = 5,
y = 10,
[3] = 15
}
print(tab.x, tab["y"], tab[3]) --> 5 10 15