Lua pairs与ipairs区别

2016-07-04  本文已影响774人  曾令伟

标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的(string.gmatch)等等

pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;

但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key

local tabww = {}

tabww[1] = nil

tabww[2] = "wwwwwwww"

tabww[3] = "www"

tabww[4] = 3

tabww[5] = 20

table.insert( tabww, 30 )

for k, v in pairs(tabww) do

          print("测试pairs:", k, v )

end

for k, v in ipairs(tabww) do

         print("测试ipairs:", k, v )

end

pairs 能遍历输出每个元素      

ipairs 则不行   碰到第一个值等于nil   就直接退出遍历了

上一篇下一篇

猜你喜欢

热点阅读