数组
Lua 数组
数组是一组有序的对象排列,既可以是一维的也可以是多维的。
在 Lua 语言中,数组是用整数索引表实现的。数组的大小并不固定,随着数组元素的增加,它可以动态地增加内存空间大小。
一维数组
一维数组可以使用一个简单的表结构表示。可以通过一个简单循环初始化数组或者读取数组中数据。示例代码如下所示:
1 | array = {"Lua", "Tutorial"} |
array = {}
for i= -2, 2 do
array[i] = i *2
end
for i = -2,2 do
print(array[i])
end
1 |
|
-4
-2
0
2
4
1 |
|
– 初始化数组
array = {}
for i=1,3 do
array[i] = {}
for j=1,3 do
array[i][j] = i*j
end
end
– 访问数组元素
for i=1,3 do
for j=1,3 do
print(array[i][j])
end
end
1 |
|
1
2
3
2
4
6
3
6
9
1 |
|
– 初始化数组
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
for col=1,maxColumns do
array[rowmaxColumns +col] = rowcol
end
end
– 访问数组元素
for row=1,maxRows do
for col=1,maxColumns do
print(array[row*maxColumns +col])
end
end
1 |
|
1
2
3
2
4
6
3
6
9
正如从上面例子中所看到的那样,数组中数据是基于索引存储的。这使得数组可以以稀疏的方式存储,这也是 Lua 矩阵的存储方式。正是因为 Lua 中不会存储 nil 值,所以 Lua 不需要使用任何特殊的技术就可以节约大量的空间,这一点在其它语言中是做不到的。