Lua - 遍历table表

3 篇文章 0 订阅

我们简单看一下pairs、ipairs以及自定义按key值顺序遍历的pairsBykeys这3中方式:

-- table表的操作

function pairsBykeys(t)
    local a = {}
    for n in pairs(t) do
        a[#a+1] = n
    end
    table.sort(a)
    local i = 0
    return function()
        i = i + 1
        return a[i], t[a[i]]
    end
end

-- table中元素为table类型时

table_item={
[1]=25,
[150002]=15000,
[150008]={150008},
[9]='码农码农!!',
[150010]=3002,
[2]={{25,},},
}


-- table中元素为非table类型时,按照表中排列顺序进行遍历

table_item1={
1,5,6,"worker",{4},true
}

print("---pairs,根据key值的hash值进行遍历---")
for k,v in pairs(table_item) do
    print(k,v)
end
print("\n---ipairs,只从key值为1处开始连续遍历---")
for k,v in ipairs(table_item) do
    print(k,v)
end
print("\n---pairsBykeys,根据key值由小到大进行遍历---")
for k,v in pairsBykeys(table_item) do
    print(k,v)
end

输出如下:

---pairs,根据key值的hash值进行遍历---
2    table: 00BF9230
150008    table: 00BF94D8
1    25
150010    3002
9    码农码农!!
150002    15000

---ipairs,只从key值为1处开始连续遍历---
1    25
2    table: 00BF9230

---pairsBykeys,根据key值由小到大进行遍历---
1    25
2    table: 00BF9230
9    码农码农!!
150002    15000
150008    table: 00BF94D8
150010    3002

相信大家看一遍后,便会对这3种方法的区别和用法一目了然了,接着可以试一下遍历table_item1表,看是否和注释所说的一样。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值