Lua - 数组长度
通常的约定是,数组的大小是数组中nil之前存在的元素数量。在许多情况下,数组中不允许有nil,但对于某些应用,在数组中包含nil并无问题。
如果我们在数组中允许nil值,那么我们必须有一些函数来显式设置数组的大小。
Lua 提供了一个函数来获取数字索引数组的大小 −
#− 用于获取数字索引数组的大小。
语法
-- 使用 # 操作符获取数组长度 n = # (t)
t− 数组
n− 数组的大小
# 操作符返回数字索引的 table 的大小。table 的大小是第一个nil值整数索引减一。如果 table 的序列中有间隙,则 table 的大小不保证是最后一个间隙。Lua 使用二分搜索查找间隙,可能不是第一个或最后一个。
示例 - # 操作符的使用
main.lua
-- 获取三个元素的数组长度
print(#{10,2,4})
--> 3
-- 获取两个元素的数组长度,将最后一个元素设置为 nil
print(#{10,2,nil})
--> 2
-- 获取两个元素的数组长度,将最后一个元素设置为 nil
-- 将数组大小设置为 3
print(#{10,2,nil; n=3})
--> 2
-- 获取零个元素的数组长度,大小为 1000
print(#{n=1000})
--> 0
输出
运行上述代码时,我们将得到以下输出−
3 2 2 0
示例 - 获取字符串长度
考虑以下示例 −
main.lua
-- 获取 4 个元素的数组长度
n = # { "welcome", "to", "", "com", name = "Mahesh" } --> 4
print(n)
-- 获取 4 个元素的数组长度
-- 使用 # 获取数组长度
n = # { "welcome", "to", "", "com" } --> 4
print(n)
输出
运行上述代码时,我们将得到以下输出−
4 4