Lua 编程中的数组大小
数组的大小是数组中在nil之前存在的元素数,这是一个通用约定。在许多情况下,数组中不允许nil,但对于某些应用程序,在其中包含nil不是问题。
如果我们在数组中允许nil值,那么我们必须有一些函数来显式设置数组的大小。
Lua确实为我们提供了两个函数来操作数组的大小,它们是-
设置
得到
该SETN功能用于明确地设置该阵列的尺寸和getn用于提取先前由SETN设置大小。
它是如何在引擎盖下工作的?
每当我们调用时,它都会将t与内部(弱)表中的n相关联,并调用以检索与该内部表中的t关联的值。table.setn(t,n)table.getn(t)
如果表t有一个带有数值的字段“n”,则setn更新该值,然后getn返回它。getn函数还有最后一个选项:如果它无法使用任何这些选项获取数组大小,它会使用幼稚的方法:遍历数组以查找其第一个nil元素。因此,您始终可以在数组中使用并获得合理的结果。table.getn(t)
让我们考虑几个例子,我们将首先使用简单的情况,我们将使用setn和getn,而数组没有字段n。
示例
print(table.getn{10,2,4}) --> 3 print(table.getn{10,2,nil}) --> 2 print(table.getn{10,2,nil; n=3}) --> 3 print(table.getn{n=1000}) --> 1000输出结果
3 2 3 1000
现在让我们使用数组中的字段n。
示例
考虑下面显示的例子-
a = {n=10} print(table.getn(a)) --> 10 table.setn(a, 1000) print(table.getn(a)) --> 1000输出结果
10 1000