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