- 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 可以无需任何特殊技术就能节省大量内存。
广告