next() 是否寻找一个__pairs元方法



一般来说,语法:

for k, v in pairs(t) do
   ....
end

相当于:

for k, v in next, t do
    ....
end

但是,如果t有一个__pairs元方法呢? 标准next()功能会检查这一点吗? 如果不是,在迭代表时始终使用 pairs,而从不直接调用next()不是更好吗?

不,next()不检查__pairs。手册没有这么说。

可以从相关源代码中双重确认,比较luaB_pairsluaB_next

有时您可能不想检查元方法__pairs那么为什么说总是使用pairs而不是next呢?

相关内容

最新更新