数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组。
在Lua中,数组是使用索引表与整数实现的。数组的大小是不固定的,它可以增长基于我们需要受存储器限制。
一维数组
一维数组可以用一个简单的表结构来表示,可以初始化,使用一个简单的for循环读取。如下例子所示。
复制代码 代码如下:array = {"Lua", "Tutorial"}
for i= 0, 2 do
print(array[i])
end
当我们运行上面的代码之后,将得到下面的输出。
复制代码 代码如下:nil
Lua
Tutorial
正如在上面的代码中看到,当我们试图访问索引中是不存在的数组中的元素,则返回nil。在Lua索引通常开始于索引1,但有可能在索引0和小于0,以及创建对象。显示使用负索引数组下面我们初始化使用for循环数组。
复制代码 代码如下:array = {}
for i= -2, 2 do
array[i] = i *2
end
for i = -2,2 do
print(array[i])
end
当我们运行上面的代码之后,将得到下面的输出。
复制代码 代码如下:-4
-2
0
2
4
多维数组
多维数组可以用两种方式来实现。
- 数组的数组
- 一维数组通过控制索引
对于3,3多维阵列如下所示使用数组的数组的例子。
复制代码 代码如下:-- 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
对于3,3多维阵列的例子如下所示使用操作索引。
复制代码 代码如下:-- 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零值,就可以节省大量的内存,在Lua中任何特殊的技术相比其他编程语言中使用特殊技术。
Lua,数组
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 刘欢《雨中的树(新歌加精选)2CD》德国HD24K金碟[WAV+CUE]
- 郑源 《世间情歌》6N纯银SQCD[WAV+CUE][1G]
- 群星《粤潮2HQII》头版限量编号[低速原抓WAV+CUE][991M]
- 群星《2023好听新歌21》十倍音质 U盘音乐[WAV分轨][1G]
- 《热血传奇》双11感恩回馈 超值狂欢30天
- 原神5.2版本活动汇总 5.2版本活动有哪些
- 张敬轩.2010-NO.ELEVEN【环球】【WAV+CUE】
- 黄丽玲.2006-失恋无罪【艾回】【WAV+CUE】
- 阿达娃.2024-Laluna【W8VES】【FLAC分轨】
- 宝可梦大集结段位等级划分表大全 大集结段位一览
- 龙腾世纪影障守护者工坊与装备如何升级 工坊与装备升级说明
- 龙腾世纪影障守护者全成就攻略分享 龙腾世纪4全成就列表一览
- 《剑星》更新四套全新战衣!
- 卡普空老将伊津野英昭宣布入职腾讯光子 开发3A动作
- 38岁梅根·福克斯官宣怀孕:将迎来第四个孩子