Lua开发--pairs/ipairs辨析

相同点:
都可以遍历table/数组
不同点:
1)pairs会遍历所有的key,类似for in 循环,可以返回nil
2)ipairs只会从1开始,步进1,中间不是数字的key会被忽略,到第一个不连续的数字为止(不包含),如果key里面没有1则不会有任何输出
3)ipairs 仅仅遍历值,按照索引升序遍历,索引中断停止遍历。即不能返回 nil,只能返回数字 0,如果遇到 nil 则退出。

tabFiles = {
        [1] = "test1",
        [2] = "test2",
        [4] = "test4"
    }
print("use ipairs!!")
for k, v in ipairs(tabFiles) do 
    print(k, v)
end

print("use pairs!!")
for k, v in pairs(tabFiles) do   
    print(k, v)
end

输出结果为:

use ipairs!!
1       test1
2       test2
use pairs!!
1       test1
2       test2
4       test4

使用ipairs遍历键值对的表,不是数字的key会被忽略,如果key里面没有1则不会有任何输出

tabFiles = {
        a = "test1",
        b = "test2",
        c = "test4"
    }
print("use ipairs!!")
for k, v in ipairs(tabFiles) do 
    print(k, v)
end

print("use pairs!!")
for k, v in pairs(tabFiles) do   
    print(k, v)
end

print("Tab elements!")
for i,k in pairs(tabFiles) do
	print(tabFiles[i])
end

--[[
use ipairs!!
use pairs!!
a       test1
c       test4
b       test2
Tab elements!
test1
test4
test2
]]--
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值