首页 > 代码库 > lua for循环遍历table的几种区别

lua for循环遍历table的几种区别

       众人皆知的是有两种:ipairs和pairs,这两种相信大家也是很了解了,其中ipairs是从头(idx=1)开始往后顺序遍历,遇到nil即退出循环;而pairs则是非顺序遍历,只要里面有值都可以遍历的到。


       那假如我需要顺序遍历而且即使中间有nil也能完整遍历到最后呢?

       接下来就说这个:通过maxSize = table.maxn(pTable)获取到table最后一个元素的所在位置(或理解为最大长度,包括其中的nil),然后:

for idx=1, maxSize do
     if pTable[idx] ~= nil then
          -- 做相应的处理...
     end
end

        这样就能实现既顺序遍历而且又能遍历完全了。

lua for循环遍历table的几种区别