在 Lua 中,如果表中缺少单个数字键,则长度仍会继续计数:
> print(#{[1]=1,[2]=2,[4]=4})
4
但是这个跳过两个索引在休息时停止
> print(#{[1]=1,[2]=2,[5]=5})
2
它不仅仅是非常规的构造函数。即使在创建表之后创建了跳过的索引,它仍然会超过它,所以只要中断只是一个。
> x={1,2}
> print(#x)
2
> x[4]=4
> print(#x)
这是一个实现错误还是 Lua 应该如何工作。为什么会这样?对此文档的任何引用都会很有趣。