Lua学习笔记(4)----数组、表

本文深入探讨Lua中的表格(table)概念,包括一维和多维数组的定义与访问方式,以及如何利用table进行数据操作,如concat、insert、remove和sort等。同时,文章还解析了表之间的赋值关系及table在Lua中的核心作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习传送:https://www.runoob.com/lua/lua-tables.html,放了个五一,之前写的忘了保存,伤心.....

1.数组

(1)一维数组

       最简单的数组,一行一列的线性表,定义的时候可以直接赋值,值支持多种类型,不像c#中整型数组就只有整型值,如果没有赋值循环取值的时候输出的是nil

输出:

      数组取值和访问:

                 array={key1=value1,value2,value3}

       两种方法访问:a.通过索引取,索引从1开始----->array[index]     (index>=1)

                               b.通过key取value1-->array.key1   (只有定义了key的才能这样取,如果这样取value2的话就会报错,没有定                                           义默认key从1开始,也就是说现在value2的key是1,value3是2)

(2)多维数组

       多行多列的表,定义可以直接array={{1,2,3},{4,5,6},......},也可以通过for循环赋值

     输出:

   访问和以为数组一样通过锁定或者key访问,索引访问的话就是多个索引,比如访问4---array[2][1]

2.表(table)

table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。

Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。

Lua table 是不固定大小的,你可以根据自己需要进行扩容。

Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用"format"来索引table string。

(1)两个表之间可以直接用“=”赋值,比如a={1,2}b=a,那么b表和a保持完全一致,相当于引用关系,b表中的值变化相应a表中也会变化,a也会影响b,但是b表如果为nil不影响a,a表为nilb表也为nil

a={1,2}b=a          --->b={1,2}

b[1]="wow"                ---->b={"wow",2}    a={"wow",2}

a[1]="ou"                   ---->b={"ou",2}      a={"ou",2}

b=nil                          ----->b=nil           a={"ou",2}

a=nil                          -----b=nil        a=nil

(2)table操作

a.table.concat(tableName[,split[,startIndex[,endIndex]]])

        返回用指定分隔符从指定开始位置到指定结束位置连接表中元素的字符串,tableName--表,split---连接符号,startindex---起始位 置,endindex----结束位置,split,startindex,endindex可以不填。

输出:

b.table.insert(tableName[,pos],value)

        在表中指定位置插入值,若无指定位置,插入表末尾。tableName---表名,pos---位置(索引),value---值

输出:

c.table.remove(tableName[,pos])

       移除表中指定位置的元素,如果没有指定位置,从末尾移除

d.table.sort(tableName[,comp])

    对给定的table进行升序排序。

 

                                                                                                                                                                     南投北浪 2020/5/8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值