Lua表,如果键从1000开始,会有性能损失吗?

a={}
a[1000]=1

我没有定义其他内容。存储空间是否会从1到999被占用?

我知道a[1]=nila[999]=nil,遍历时是否会按顺序从1到1000计算?

原文链接 https://stackoverflow.com/questions/70051511

点赞
stackoverflow用户1442917
stackoverflow用户1442917

不,除非您创建了1000个元素并删除了1-999,否则不会为其他(1-999)元素分配空间。Lua支持“稀疏”数组,并将使用表的哈希部分来存储这些键/值对。

如果您问的是如果1-999个元素不存在,a[1000]是否会更慢,那么有可能会更慢,因为在这种情况下,表的哈希部分将被使用(而不是数组部分),但是您必须进行基准测试才能确定在您的情况中是否存在任何重要的可观察差异。

2021-11-21 03:34:57