Lua pairs与ipairs区别

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形...
    Lee坚武阅读 2,614评论 0 51
  • 1.1程序块:Lua执行的每段代码,例如一个源代码文件或者交互模式中输入的一行代码,都称为一个程序块 1.2注释:...
    c_xiaoqiang阅读 2,634评论 0 9
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,573评论 0 17
  • 暴躁,时而平静,健忘,有时却能完整重述所有细节。每个月都有病人回归社会,每个月都有病人从社会回归医院。“还是这里好~”
    U0阅读 214评论 0 1
  • 杨倩,焦点讲师三期,漯河,坚持分享255天,(2017-09-11) 关注正向 有一则故...
    温心怡然阅读 181评论 0 0