有没有办法告诉 `next` 从特定的键开始?

Is there a way to tell `next` to start at specific key?

我的理解是 pairs(t) 只是 returns next, t, nil.

如果我将其更改为 next, t, someKey(其中 someKey 是我的 table 中的有效密钥)是否会 next 启动 at/after 该密钥?

我在 Lua Demo 页面上尝试过:

t = { foo = "foo", bar = "bar", goo = "goo" }

for k,v in next, t, t.bar do
  print(k);
end

每次我 运行 代码都会得到不同的结果。所以指定一个起始键是有效果的,不幸的是效果似乎有点运行dom。有什么建议吗?

来自lua documentation

The order in which the indices are enumerated is not specified, even for numeric indices. (To traverse a table in numeric order, use a numerical for.)

每次你 运行 程序遍历 Lua table 顺序都会不同,因为 Lua 内部在散列中使用随机盐 tables.

这是在 Lua 5.2 中引入的。参见 luai_makeseed