1.概述:表结构是所有复杂数据的基础:数组,二维数组,字典,类等等
2.表的声明
value={}----空表
3.使用表来实现一维数组
value={1,2,3,4,5,“123”,true,nil}
在使用#,来获取value的长度的时候,会忽略掉队尾的nil
注意:
1.如果这里的nil在前面也会从nil开始进行忽略
2.有些版本只会忽略队尾的nil,具体的根据编译结果进行判断
3.如果队尾有一个nil,中间也有一个nil也会进行忽略
如value={1,2,3,4,5,nil,6,7,8,nil} #value =5 使用for通过#value进行遍历打印的话,也只是打印1,2,3,4,5
4.数组遍历
遍历的时候忽略情况,同获取长度的时候一样。
遍历使用for循环
for i=1,#a do
print(value[i])
end
注意:索引是从1开始
5.二维数组的定义
value={{},{}}
当二维数组中有nil的情况的时候同一维数组
6.二维数组的遍历
①外层for循环取出一个一维数组
②内存for循环遍历这个一维数组
value={{1,2,3},{4,nil,5}}
for i=1,#value do
value2=value[i]
for j=1,#value2 do
print(value2[j])
end
end
7.自定义索引
形式:a={[index]=value,[index2]=value}
注意:因为平常时候不会使用自定义的数字索引,所以只是了解
1.定义索引的时候,如果是数字形式,如[1]=1,[2]=2,[3]=3,[5]=5时
使用#打印的数组长度为5。
如果定义的是[1]=1,[3]=3,[4]=4,[5]=5时
使用#打印的数组长度为1
如果定义[1]=1,[2]=2,[4]=4,[5]=5时
使用#打印的数组长度为2