我正在尝试在lua中循环表,但表循环顺序错误。下面的代码打印:
- 键 : 三 数: 3
- 键 : 一个 数字: 1
- 键 : 两个 数字: 2
代码是:
testNumbers =
{
one = 1,
two = 2,
three = 3
}
for key,num in pairs(testNumbers) do
print("key : " .. key .. " num: " .. num)
end
如何使其按正确的顺序循环?我不能对代码进行太多更改,因为我现在需要关键变量
为了提高效率,Lua 表不跟踪其键的顺序。如果无法更改表的格式,仍可以通过保留键数组并循环访问该数组来强制实施迭代顺序。
testNumbers =
{
one = 1,
two = 2,
three = 3
}
local order = {'one', 'two', 'three'}
for _, key in ipairs(order) do
print("key : " .. key .. " num: " .. testNumbers[key])
end
Lua 中的表是键值对的集合,而不是序列。
遍历表以未指定的顺序访问其对。请参阅手册。