Lua语法小贴士(十六)pairs和next

博客探讨了Lua中的pairs和next迭代器在清空表时的效率差异,指出通常pairs和next的关系,以及它们在循环中的工作原理。尽管有人声称pairs速度更快,但博主认为在无具体上下文的情况下,这种说法存在问题。
摘要由CSDN通过智能技术生成

今天看到一个帖子,是关于lua优化的,上面说清空一个表的时候,pairs的效率是next的500倍。
我记得for pairs循环实际上就是调用的就是next,还特意查了源码,应证了我的记忆。
源码就不贴了,直接给结论。


for k, v in pairs(tbl) do
end

基本等同于

for k, v in next, tbl, nil do
end

pairs(tbl)返回三个值,称为迭代方法(源码注释中为generator)、状态和初始值。

而实际上这个三个值便是next,tbl和nil。

第一次循环,将tbl和nil传入next方法,返回k和v(如果是空表,返回nil,中断循环)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值