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 很有用,多谢了 |