学习笔记七

[复制链接]
查看1138 | 回复1 | 2021-10-12 20:18:09 | 显示全部楼层 |阅读模式

《十分钟学LUA》七

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




   这里pairsipairs比较可知i就像整数键,没有i则是整个键。

    print("*************迭代遍历键*************")
    --遍历键
    for i in pairs(a) do
            print("键"..i)
    end
结果为:
ipairs遍历键1

ipairs遍历键2

ipairs遍历键3
ipairs遍历键0

ipairs遍历键-1
疑问:pairsipairs只能用于for循环吗?







回复

使用道具 举报

lijun0223 | 2021-10-30 10:34:58 | 显示全部楼层
回帖水经验!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

27

主题

54

帖子

678

积分

高级会员

Rank: 4

积分
678