Lua,表的大小(#table_name或table.getn(table_name),它有时返回0

mpa*_*paw 3 lua

什么#table_name时候返回不是0值?而且,什么table.getn(table_name)时候返回不是0值?

dir*_*tly 7

阅读手册:

2.5.5 - 长度算子

长度运算符由一元运算符#表示.字符串的长度是它的字节数(也就是每个字符是一个字节时字符串长度的通常含义).

表t的长度被定义为任何整数索引n,使得t [n]不是nil且t [n + 1]是nil; 此外,如果t [1]为零,则n可以为零.对于常规数组,非n值从1到给定n,其长度恰好是n,即其最后一个值的索引.如果数组具有"空洞"(即,其他非零值之间的nil值),那么#t可以是直接在nil值之前的任何索引(也就是说,它可以将任何这样的nil值视为结束的数组).