当前位置:   article > 正文

Lua语法详解之表(用表表示,数组,数组遍历(一维,二维),自定义索引)_lua自定义索引

lua自定义索引

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后面的被忽略了,玄学啊……
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

(二)数组遍历

--数组的遍历(在数组每个元素都不为空的情况下,数组长度用#)
a={1,"13",true}
for i=1,#a do
	print(a[i])--
end--1,13,true
  • 1
  • 2
  • 3
  • 4
  • 5

(三)二维数组

--二维数组
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(四)二维数组的遍历

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(五)自定义索引
一般不建议用数字作为自定一索引,因为有坑

--自定义索引
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



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号