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