ps:lua中没有数组,字典这种概念,只不过是通过表展示这些概念的特征。
(一)数组
--数组
--lua中索引从1开始
a={1,3,4,5,7,9,10}
c={1,"13",true,5,nil}
d={nil,5,7}
e={5,nil,7}
f={nil}
g={1,3,nil,4,"13",true,nil}
print(a[1])--1
print(c[3])--true
--获取数组长度,注意当为nil结尾时,nil会被忽略,不占长度,当表中有nil
--元素的时候,会影响表中实际长度的获取。
print(#a)--7
print(#c)--4,在打印长度的时候最后一个空被忽略了
print(#d)--3,开头的空没有被忽略
print(#e)--3,中间的空也没有被忽略
print(#f)--0,空被忽略了
print(#g)--2,nil后面的被忽略了,玄学啊……
(二)数组遍历
--数组的遍历(在数组每个元素都不为空的情况下,数组长度用#)
a={1,"13",true}
for i=1,#a do
print(a[i])--
end--1,13,true
(三)二维数组
--二维数组
a={{1},{"1"},{true}}
a={{1},{13},{4}}
a={{1,3},{5,7,8},{9,"1","13",true}}
print(a[1][1])--1
print(a[3][3])--13
(四)二维数组的遍历
a={{1,3},{5,7,8},{9,"1","13",true}}
for i=1,#a do
b=a[i]
for j=1,#b do
print(b[j])
end
end--1,3,5,7,8,9,"1","13",true
(五)自定义索引
一般不建议用数字作为自定一索引,因为有坑
--自定义索引
a={[0]=1,[1]=8,["1"]=8,[-1]=9,["13"]=13,[true]=7,1,13,14}
print(a[0])--1
print(a["13"])--13,以字符串作为索引
print(a[-1])--9,以-1作为索引,建议实际开发时不要这么用,太反人类了……
print(a[true])--7
print(#a)--1
print(a[0])--1
print(a[2])--nil
print(a[3])--nil
print(a[4])--nill
print(a[1])--这里自定一索引不起作用,并不为8,而是1,这里注意,没有把带了自定义索引的东西算进去,用的是1,13,14,所以第一个是1
print(a["1"])--8,
print(a[3])--14,这里注意,没有把带了自定义索引的东西算进去,用的是1,13,14,所以第三个是14
aa={[1]=1,[3]=3,[4]=4,[5]=5}
print(aa[1])--1
print(aa[3])--3
print(aa[4])--4
print(aa[5])--5
c={[1]=1,[3]=3,[4]=4,[5]=5,"10","30",true}
print(c[1])--10
print(c[3])--true
print("************")
print(#c)--5
for i=1,#c do
print(c[i])
end--10,30,true,4,5