Lua 表的循环顺序错误



我正在尝试在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 中的表是键值对的集合,而不是序列。

遍历表以未指定的顺序访问其对。请参阅手册。

最新更新