标准库提供了集中迭代器,包括迭代文件每行的(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 就直接退出遍历了
网友评论