开发手册 欢迎您!
软件开发者资料库

Lua - 数组

Lua Arrays - 从简单和简单的步骤学习Lua编程语言,从基本概念到高级概念,包括概述,环境设置,基本语法,变量,数据类型,运算符,循环,决策,函数,字符串,数组,迭代器,表,模块,Metatables,协同程序,文件I / O,错误处理,调试,垃圾收集,面向对象,Web编程,数据库访问,游戏编程及其标准库。

数组是有序排列的对象,可以是包含行集合的一维数组,也可以是包含多行和多列的多维数组.

在Lua中,数组使用带整数的索引表实现.数组的大小不固定,它可以根据我们的要求增长,受内存限制.

一维数组

一个-dimensional数组可以使用简单的表结构表示,并且可以使用简单的 for 循环进行初始化和读取.示例如下所示.

array = {"Lua", "Tutorial"}for i = 0, 2 do   print(array[i])end

当我们运行时在上面的代码中,我们将获得以下输出.

nilLuaTutorial

正如您在上面的代码中所看到的,当我们尝试访问数组中不存在的索引中的元素时,它返回nil.在Lua中,索引通常从索引1开始.但是也可以在索引0和0以下创建对象.使用负索引的数组如下所示,我们使用 for 循环初始化数组.

array = {}for i= -2, 2 do   array[i] = i *2endfor i = -2,2 do   print(array[i])end

当我们运行上面的代码时,我们将得到以下输出.

-4-2024

多维数组

多维数组可以通过两种方式实现.

  • 数组数组

  • 操纵索引的单维数组

下面使用数组数组显示了多维数组3的示例.

 -- Initializing the arrayarray = {}for i=1,3 do   array[i] = {}   for j=1,3 do      array[i][j] = i*j   endend-- Accessing the arrayfor i=1,3 do   for j=1,3 do      print(array[i][j])   endend

当我们运行上面的代码时,我们将获得以下输出.

123246369

下面使用操纵索引显示多维数组的示例.

-- Initializing the arrayarray = {}maxRows = 3maxColumns = 3for row=1,maxRows do   for col=1,maxColumns do      array[row*maxColumns +col] = row*col   endend-- Accessing the arrayfor row=1,maxRows do   for col=1,maxColumns do      print(array[row*maxColumns +col])   endend

当我们运行上面的代码时,我们将得到以下输出.

123246369

尽可能参见上面的例子,数据是根据索引存储的.可以以稀疏的方式放置元素,这是Lua实现矩阵的方式.由于它没有在Lua中存储nil值,因此与其他编程语言中使用的特殊技术相比,Lua中可以节省大量内存而无需任何特殊技术.