阅读(778)
赞(10)
OpenResty Lua 判断数组大小
2021-08-05 11:33:15 更新
table.getn(t) 等价于 #t 但计算的是数组元素,不包括 hash 键值。而且数组是以第一个 nil 元素来判断数组结束。#
只计算 array 的元素个数,它实际上调用了对象的 metatable 的 __len
函数。对于有 __len
方法的函数返回函数返回值,不然就返回数组成员数目。
Lua 中,数组的实现方式其实类似于 C++ 中的 map,对于数组中所有的值,都是以键值对的形式来存储(无论是显式还是隐式),Lua 内部实际采用哈希表和数组分别保存键值对、普通值,所以不推荐混合使用这两种赋值方式。尤其需要注意的一点是:Lua 数组中允许 nil 值的存在,但是数组默认结束标志却是 nil。这类比于 C 语言中的字符串,字符串中允许 '