数组是对象的有序排列,可以是包含行集合的一维数组,也可以是包含多行和多列的多维数组。
在Lua中,数组是使用带有整数的索引表实现的。数组的大小不是固定的,并且可以根据无涯教程的要求(取决于内存限制)来增长。
一维数组
一维数组可以使用简单的表结构表示,并且可以使用简单的 for 循环进行初始化和读取。一个如下所示。
array = {"Lua", "Tutorial"} for i = 0, 2 do print(array[i]) end
当运行上面的代码时,将获得以下输出。
nil Lua Tutorial
如您在上面的代码中看到的那样,当尝试访问数组中不存在的索引中的元素时,它返回nil。在Lua中,索引通常从索引1开始。但是也可以在索引0和0以下创建对象。使用负索引的数组如下所示,其中使用 for 循环初始化数组。
array = {} for i= -2, 2 do array[i] = i *2 end for i = -2,2 do print(array[i]) end
当运行上面的代码时,将获得以下输出。
-4 -2 0 2 4
多维数组
下面使用数组数组显示3. 3的多维数组的示例。
-- Initializing the array array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- Accessing the array for i=1,3 do for j=1,3 do print(array[i][j]) end end
当运行上面的代码时,将获得以下输出。
1 2 3 2 4 6 3 6 9
下面显示了使用操纵索引的多维数组示例。
-- Initializing the array array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns +col] = row*col end end -- Accessing the array for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns +col]) end end
当无涯教程运行上面的代码时,将获得以下输出。
1 2 3 2 4 6 3 6 9
Lua - Arrays(数组) - 无涯教程网无涯教程网提供数组是对象的有序排列,可以是包含行集合的一维数组,也可以是包含多行和多列的多维数...https://www.learnfk.com/lua/lua-arrays.html