8

一般来说,语法:

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

相当于:

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

但是如果t__pairs元方法呢?标准next()功能会对此进行检查吗?如果不是,那么在迭代表时总是使用而不是直接 调用不是更好吗?pairsnext()

4

1 回答 1

5

不,next()不检查__pairs. 手册上没有这样说。

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

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

于 2015-04-11T16:42:08.670 回答