详解Lua中的数组概念知识

2023-12-05 0 991

数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组。

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中使用二维数组实例
    • Lua检测数组(tabble)中是否包含某个值
    • Lua中遍历数组和table的4种方法
    • Lua教程(五):C/C++操作Lua数组和字符串示例
    • Lua一维数组与多维数组的使用示例

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 Lua 详解Lua中的数组概念知识 https://www.u-9.cn/jiaoben/lua/101305.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务