这篇文章主要介绍了Lua中的数组概念知识,是Lua入门学习中的基础,需要的朋友可以参考下zsHHTML5中文学习网 - HTML5先行者学习网
数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组。zsHHTML5中文学习网 - HTML5先行者学习网
在Lua中,数组是使用索引表与整数实现的。数组的大小是不固定的,它可以增长基于我们需要受存储器限制。zsHHTML5中文学习网 - HTML5先行者学习网
一维数组zsHHTML5中文学习网 - HTML5先行者学习网
一维数组可以用一个简单的表结构来表示,可以初始化,使用一个简单的for循环读取。如下例子所示。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
array = {"Lua", "Tutorial"}zsHHTML5中文学习网 - HTML5先行者学习网
for i= 0, 2 dozsHHTML5中文学习网 - HTML5先行者学习网
print(array[i])zsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
当我们运行上面的代码之后,将得到下面的输出。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
nilzsHHTML5中文学习网 - HTML5先行者学习网
LuazsHHTML5中文学习网 - HTML5先行者学习网
TutorialzsHHTML5中文学习网 - HTML5先行者学习网
正如在上面的代码中看到,当我们试图访问索引中是不存在的数组中的元素,则返回nil。在Lua索引通常开始于索引1,但有可能在索引0和小于0,以及创建对象。显示使用负索引数组下面我们初始化使用for循环数组。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
array = {}zsHHTML5中文学习网 - HTML5先行者学习网
for i= -2, 2 dozsHHTML5中文学习网 - HTML5先行者学习网
array[i] = i *2zsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
for i = -2,2 dozsHHTML5中文学习网 - HTML5先行者学习网
print(array[i])zsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
当我们运行上面的代码之后,将得到下面的输出。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
-4zsHHTML5中文学习网 - HTML5先行者学习网
-2zsHHTML5中文学习网 - HTML5先行者学习网
0zsHHTML5中文学习网 - HTML5先行者学习网
2zsHHTML5中文学习网 - HTML5先行者学习网
4zsHHTML5中文学习网 - HTML5先行者学习网
多维数组zsHHTML5中文学习网 - HTML5先行者学习网
多维数组可以用两种方式来实现。zsHHTML5中文学习网 - HTML5先行者学习网
数组的数组zsHHTML5中文学习网 - HTML5先行者学习网
一维数组通过控制索引zsHHTML5中文学习网 - HTML5先行者学习网
对于3,3多维阵列如下所示使用数组的数组的例子。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
-- Initializing the arrayzsHHTML5中文学习网 - HTML5先行者学习网
array = {}zsHHTML5中文学习网 - HTML5先行者学习网
for i=1,3 dozsHHTML5中文学习网 - HTML5先行者学习网
array[i] = {}zsHHTML5中文学习网 - HTML5先行者学习网
for j=1,3 dozsHHTML5中文学习网 - HTML5先行者学习网
array[i][j] = i*jzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
-- Accessing the arrayzsHHTML5中文学习网 - HTML5先行者学习网
for i=1,3 dozsHHTML5中文学习网 - HTML5先行者学习网
for j=1,3 dozsHHTML5中文学习网 - HTML5先行者学习网
print(array[i][j])zsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
当我们运行上面的代码之后,将得到下面的输出。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
1zsHHTML5中文学习网 - HTML5先行者学习网
2zsHHTML5中文学习网 - HTML5先行者学习网
3zsHHTML5中文学习网 - HTML5先行者学习网
2zsHHTML5中文学习网 - HTML5先行者学习网
4zsHHTML5中文学习网 - HTML5先行者学习网
6zsHHTML5中文学习网 - HTML5先行者学习网
3zsHHTML5中文学习网 - HTML5先行者学习网
6zsHHTML5中文学习网 - HTML5先行者学习网
9zsHHTML5中文学习网 - HTML5先行者学习网
对于3,3多维阵列的例子如下所示使用操作索引。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
-- Initializing the arrayzsHHTML5中文学习网 - HTML5先行者学习网
array = {}zsHHTML5中文学习网 - HTML5先行者学习网
maxRows = 3zsHHTML5中文学习网 - HTML5先行者学习网
maxColumns = 3zsHHTML5中文学习网 - HTML5先行者学习网
for row=1,maxRows dozsHHTML5中文学习网 - HTML5先行者学习网
for col=1,maxColumns dozsHHTML5中文学习网 - HTML5先行者学习网
array[row*maxColumns +col] = row*colzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
-- Accessing the arrayzsHHTML5中文学习网 - HTML5先行者学习网
for row=1,maxRows dozsHHTML5中文学习网 - HTML5先行者学习网
for col=1,maxColumns dozsHHTML5中文学习网 - HTML5先行者学习网
print(array[row*maxColumns +col])zsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
endzsHHTML5中文学习网 - HTML5先行者学习网
当我们运行上面的代码之后,将得到下面的输出。zsHHTML5中文学习网 - HTML5先行者学习网
代码如下:zsHHTML5中文学习网 - HTML5先行者学习网
1zsHHTML5中文学习网 - HTML5先行者学习网
2zsHHTML5中文学习网 - HTML5先行者学习网
3zsHHTML5中文学习网 - HTML5先行者学习网
2zsHHTML5中文学习网 - HTML5先行者学习网
4zsHHTML5中文学习网 - HTML5先行者学习网
6zsHHTML5中文学习网 - HTML5先行者学习网
3zsHHTML5中文学习网 - HTML5先行者学习网
6zsHHTML5中文学习网 - HTML5先行者学习网
9zsHHTML5中文学习网 - HTML5先行者学习网
正如在上面的例子中看到的,数据是基于索引储存的。也能够将元素以稀疏的方式,它是一个矩阵的工作方式lua的实现。因为它不保存在Lua零值,就可以节省大量的内存,在Lua中任何特殊的技术相比其他编程语言中使用特殊技术。zsHHTML5中文学习网 - HTML5先行者学习网