t = {1,nil,nil,2}
print (#t )
t = {1,2,nil,nil}
print (#t )
t = {nil,nil,1,2}
print (#t )
t = {1,nil,2,nil}
print (#t )
输出结果是
4
2
4
1
我对 nil 的理解是, table 里边,只要出现 nil ,后边的就不会在计入长度了,之前的 key ,如果没有显示指定,默认从 1 开始,从而上边四个输出应该是 1,2,0,1
不知道为什么结果和预期的不一样
1
closeid 2015-08-25 11:09:31 +08:00
mark 看结果。
|
2
whahuzhihao 2015-08-25 11:54:46 +08:00
貌似没什么规律可循。建议不要用#来获取 table 的长度哦,也不要设置元素为 nil 。还是自己写个 get_length 函数,循环获取长度吧。
http://www.tuicool.com/articles/Jbyy6n |
3
clino 2015-08-25 12:08:01 +08:00 via Android
pil 记得有专门针对这个说过的 去找找
|
4
34D 2015-08-25 12:15:22 +08:00
不要设置元素为 nil ,如果已定要设置,要自己设置长度。
|
5
iambic OP @whahuzhihao 很有用,多谢了
|