在表中定义键时,为什么要以随机顺序插入?

时间:2019-02-10 18:15:11

标签: random lua key lua-table

在处理Love2d项目时,我注意到当使用键定义表并将所述表放置在另一个表中时,这些表将以随机顺序插入。

为了测试这一点,我编写了一个简短的脚本,希望可以更好地解释我的困境。我的第一个假设是,尽管我不确定,但是只要在有可用内存的地方都插入了密钥。我以前从未遇到过,有人有什么想法吗?

enter image description here

1 个答案:

答案 0 :(得分:3)

Lua将表实现为哈希表,因此遍历它们时显然是随机顺序。这是设计使然,以便可以在固定的摊销时间内完成对表的访问。

如果顺序对您很重要,请使用顺序索引和复杂值,例如

t[1] = { key="CA", value="California" }
t[2] = { key="TX", value="Texas" }