print("*************自定义索引*************")
a = {[0]=1,2,3,[-1]=4,5}
print(a[0]) --返回1
print(a[1])--返回2
print(a[-1])--返回4
print(a[2])--返回3
print(a[3])--返回5
print(#a)--返回3 --打印长度 中间产生索引断裂了 会停止计数
--可以自定义索引 甚至负索引
正常是:
a = {1,2,3,4,5}
print(a[0])--返回nil
print(a[1])--返回1
print(a[-1])--返回nil
print(a[2])--返回2
print(a[3])--返回3
print(#a)--返回5
对比看就很清楚了。
print("*************二维数组*************")
a = {{1,2,3},{4,5,6}}
print(a[1][1])--返回1
print(a[1][2])--返回2
print(a[1][3])--返回3
print(a[2][1])--返回4
print(a[2][2])--返回5
print(a[2][3])--返回6
--迭代器遍历
print("*************ipairs迭代遍历键值*************")
a = {[0] = 1,2,[-1] = 3,4,5}
--遍历键值
for i,k in ipairs(a) do--i是键,k 是值
print("ipairs遍历键"..i)
print("ipairs遍历值"..k) --(#a)=3,[0] = 1与[-1] = 3不占a键,也不会出值
end
结果为:
ipairs遍历键1
ipairs遍历值2
ipairs遍历键2
ipairs遍历值4
ipairs遍历键3
ipairs遍历值5
print("*************pairs迭代遍历键值*************")
for i,k in pairs(a) do
print("pairs遍历键"..i)
print("pairs遍历值"..k)
end
结果为:
ipairs遍历键1
ipairs遍历值2
ipairs遍历键2
ipairs遍历值4
ipairs遍历键3
ipairs遍历值5
ipairs遍历键0
ipairs遍历值1
ipairs遍历键-1
ipairs遍历值3
这里pairs与ipairs比较可知i就像整数键,没有i则是整个键。
print("*************迭代遍历键*************")
--遍历键
for i in pairs(a) do
print("键"..i)
end
结果为:
ipairs遍历键1
ipairs遍历键2
ipairs遍历键3
ipairs遍历键0
ipairs遍历键-1
疑问:pairs与ipairs只能用于for循环吗?
|