Lua学习笔记(2)——table

Lua中,只有一种数据结构,那就是table,即没有所谓的数组、字典、链表、队列等等,但是都可以通过table来模拟实现。
table的写法有很多,但是大体思想也就两种
1.

table = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}


2.

table={"Sunday"="周日","Monday"="周一","Tuesday"="周二","Wednesday"="周三","Thursday"="周四","Friday"="周五","Saturday"="周六"}


所以它看起来更像是数组+字典的结合体。
第一种的情况下,一般都是通过索引来定位。值得一提的是,Lua跟其他语言有所不同,数组的索引默认值是从1开始的,另外就是我们可以自定义索引起始值,比如负数。但是一般不建议这么干,原因是Lua一些功能都是遵循从1开始的约定(数组的长度操作符),如果自定义索引起始值了,那么就没办法用这些功能了。此外,在遍历数组时一般都是用ipairs, for i,v in ipairs(table) do <do something> end
第二种情况下,table都是通过key值来索引value。当然,除了nil外,其他类型的值都可以当做key。这样的情形下,通常访问table里面的元素是:table[key],但是也有另外一种写法:table.key。这两种在部分情况下是等价的,但是还是有差异的。比如说,key此时不是个值,而只是个变量。那差异就明显了

但是table这种数据结构带给我一个困扰。比如table[1],到底是数组的第一个元素,还是key为1的元素。也就是数组跟字典傻傻的分不清楚了(囧)。当然,要分清,最好的方式参考是上下文。但是如果是这样的呢:table = {“a”,”c”;[1]=”d”,[2]=”e”},额,这个时候该怎么说?

转载于:https://www.cnblogs.com/haiyidao/archive/2012/10/28/2744054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值