lua中匪夷所思的table长度


s = { 1, 2, 3, 4, 5, 6 }
print(#s)     -- output: 6
s[4] = nil
print(#s)     -- output: 6
s[7] = nil
print(#s)     -- output: 3
s[4] = 4
print(#s)     -- output: 6
s[4] = nil
print(#s)     -- output: 3

print()

s = { "1", "2", "3", "4", "5", "6" }
print(#s)     -- output: 6
s["4"] = nil
print(#s)     -- output: 6
s["7"] = nil
print(#s)     -- output: 6
s["4"] = "4"
print(#s)     -- output: 6
s["4"] = nil
print(#s)     -- output: 6

Lua 5.3.4

输出就是这么匪夷所思,所以, 不要在Lua的table中使用nil值,如果一个元素要删除,直接remove

作者: honmaple
链接: https://honmaple.me/articles/2017/10/lua中匪夷所思的table长度.html
版权: CC BY-NC-SA 4.0 知识共享署名-非商业性使用-相同方式共享4.0国际许可协议
wechat
alipay

加载评论