本文对从数据结构,存储和使用三个角度对lua之table的使用进行小结。
- 数据结构:
table是lua的一种数据结构,可以用来存放各种类型的元素,例如可以创建数组和字典,以及二者混合的数据结构,
例如:
a={“hello”,“world”,“lua”} --数组
b={a=“hello”,b=“world”,c=“lua”} --字典
c={“hello”,b=“world”,“lua”} --数组元素和字典元素混合 - 存储:
lua的table使用数组和哈希表结合的方式,使用string或者0和负数做key时,key都是保存在哈希段,使用正整数或没有key值的值,都保存在数组区
如果以正整数作为key存储的key,与索引重复,则以索引的值为准
例如对于如下定义的table
local a={[3]=“world”,“my”,[2]=“hello”,“lua” }
输出如下:
- 遍历方式:
table的遍历方式有两种,由于table的数据结构比较灵活,所以其遍历方式也存在差别,下面从两种遍历方式的区别来梳理table的遍历规则
3.1 ipairs只会输出有索引的数据,table不会给键值对一个索引,因此不会输出键值对,而pairs会输出table中的值和键值