Lua,pairs与ipairs区别

pairs遍历表中全部key,value

ipairs 这个迭代器只能遍历所有数组下标的值,这是前提,也是和 pairs 的最根本区别,也就是说如果 ipairs 在迭代过程中是会直接跳过所有手动设定key值的变量。

特别注意一点,和其他多数语言不同的地方是,迭代的下标是从1开始的。

pairs实例:

tab = {1, 2, 3, key1 = nil, key2 = "val2", nil,  "d"}
for k, v in pairs(tab) do
    print(k,v)
end

以上实例结果:

注意:pairs遍历过程中元素出现的顺序可能是随机的,唯一能确定的是,每个元素只会出现一次。

 

ipairs实例:

tab = {1, 2, 3, key1 = nil, key2 = "val2", nil,  "d"}
for k, v in ipairs(tab) do
    print(k,v)
end


tab = {1, 2, 3, key1 = nil, key2 = "val2", "d"}
for k, v in ipairs(tab) do
    print(k,v)
end

以上实例结果:

ps:中间那道杠(-------)是分隔符,插入代码时不能选择LUA,选择了别的语言代替,上面实例代码中删除了打印分隔符,如果没删除,代码会变成纯白色,可读性不强。

总结:

1.pairs 能迭代所有键值对。

2.ipairs 可以想象成 int+pairs,只会迭代键为数字的键值对。

3.ipairs在迭代过程中如果遇到nil时会直接停止。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值