lua中的table总结

table(表)

table非常灵活,可以用table表示普通数组,队列,符号表,集合,记录等等数据结构。
lua的table实现了关联数组,所谓关联数组。就是可以用各种特殊的索引去索引这个数组,table没有固定个的长度,可以动态的添加元素到一个table中,如果一个table的长度为零了,那个lua的垃圾回收机制会自动销毁这个table并复用他的内存,在lua中,table既不是值也不是变量,而是一个对象,可以想象成一个可以动态分配的对象,程序中只是持有一个对他们的引用或者指针,还有table也不能声明,而是通过构造表达式来创建table的,最简单的构造表达式就是{}。如这样  local tb = {},这就创建了一个table。
table永远是匿名的,一个table和持有table的变量没有固然的联系。
下边说下索引方式  a["name"] = a.name,这就是所说的table索引的语法糖,这两种写法是等价的,意义都是用字符创"name"来索引这个table,注意还有一种写法如a[name],这是有区别的,a[name]的意义和上两种不同,他表示用name的值来索引table,注意重要区别就是,一个是用字符串索引,一个是用name的值索引,
语法糖就是a["name"]等价于a.name,就是两种通过字符串索引table 的方式而已,a[name]使用name 的值来索引,重要的事情多说几遍。千万不要搞混。

下边再说说table的下一个符号 “#”,这个符号叫做长度操作符。它被用来返回一个数组或者线性表的最后一个索引值。
所以啊,只要table是连续的,我们 就可以用这个符号来得出table的长度,就这样用,#a。注意啊,这个tabl'e不能有空隙,如果有空隙的话,就不行了,因为lua将nil视为数组结束的标识符,而table中所有没有被初始化的部分都被系统初始化为nil,如果计算有空隙的数组的长度,可以使用table.maxn()函数,它的功能是返回数组的最大正索引数。

下面说说table的构造式
上边说了table最简单的构造是是{},其实还可以初始化
下边特性记住以下 特性一:构造是 {x=0 , y=0}等价于 {[“x”]=0 ,[“y”]=0}, 
                                     还有 构造式 {“r”,“g”,“b”} 等价于 {[1] = "r" ,[2]=“g”,[3] = "b"} 
      特性二,就是 构造是中的逗号 可以用 分号替代,可以起到分类的作用
      特性三, 构造是的最后一个字符后可以加逗号,这样对于lua 的程序来说,他们不必将最后一个作为特例来处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值