有没有办法告诉 `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。
我的理解是 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 numericalfor
.)
每次你 运行 程序遍历 Lua table 顺序都会不同,因为 Lua 内部在散列中使用随机盐 tables.
这是在 Lua 5.2 中引入的。参见 luai_makeseed。