我的理解是,pairs(t)
只返回next, t, nil
。
如果我将其更改为next, t, someKey
(其中someKey
是我表中的有效密钥),next
将从该密钥开始/之后?
我在Lua Demo页面上试过这个:
t = { foo = "foo", bar = "bar", goo = "goo" }
for k,v in next, t, t.bar do
print(k);
end
每次运行代码时都会得到不同的结果。因此,指定一个起始键有效,遗憾的是效果似乎有点随机。有什么建议?
每次运行遍历Lua表的程序时,顺序都会不同,因为Lua内部在哈希表中使用随机盐。
这是在Lua 5.2中引入的。见luai_makeseed。
来自lua documentation:
未指定索引的枚举顺序,即使对于数字索引也是如此。 (要以数字顺序遍历
table
,请使用数字for
。)