- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 决策
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- Lua - 快速指南
- Lua - 有用资源
- Lua - 讨论
Lua - 多维数组
数组是有序的对象排列,可以是一维数组(包含一系列行)或多维数组(包含多行多列)。
在 Lua 中,数组使用带整数索引的表来实现。数组的大小不是固定的,可以根据需要增长,受内存限制。
多维数组可以通过两种方式实现。
- 数组的数组
- 通过操作索引实现的一维数组
示例 - 创建数组
下面是一个使用数组的数组实现的 3x3 多维数组示例。
main.lua
-- 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
示例 - 创建索引
下面是一个使用操作索引实现多维数组的示例。
main.lua
-- 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 实现矩阵的方式。由于 Lua 不存储 nil 值,因此与其他编程语言中使用的特殊技术相比,Lua 可以无需任何特殊技术就能节省大量内存。
广告