lua中匪夷所思的table长度
1s = { 1, 2, 3, 4, 5, 6 } 2print(#s) -- output: 6 3s[4] = nil 4print(#s) -- output: 6 5s[7] = nil 6print(#s) -- output: 3 7s[4] = 4 8print(#s) -- output: 6 9s[4] = nil 10print(#s) -- output: 3 11 12print() 13 14s = { "1", "2", "3", "4", "5", "6" } 15print(#s) -- output: 6 16s["4"] = nil 17print(#s) -- output: 6 18s["7"] = nil 19print(#s) -- output: 6 20s["4"] = "4" 21print(#s) -- output: 6 22s["4"] = nil 23print(#s) -- output: 6
Lua 5.3.4
输出就是这么匪夷所思,所以, 不要在Lua的table中使用nil值,如果一个元素要删除,直接remove
