1.关于lua中求表的长度问题:
取长度操作符写作一元操作 # 它满足
t[n]
不是 nil 而 t[n+1]
为 nil; 此外,如果 t[1]
为 nil ,n
就可能是零。
比如:t = {[0] = 0, 1, [2] = 2, "3", ["4"] = 4 } 中 ,这个表混合了2中表的风格,list和record,record风格是不作为外表长度计入总数的,所以#t = 2
又比如说, t = {1,{a = 2 }, 3}中,包括了嵌套表,嵌套表也是表元素!所以这里#t = 3
特别需要注意的是,表元素不能为nil,del一个表元素要用table.remove,而不是赋为nil!!!!
另外for循环当中,对混合表使用ipairs 会取到k为number 的值!