博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lua 遍历 table
阅读量:6072 次
发布时间:2019-06-20

本文共 881 字,大约阅读时间需要 2 分钟。

Lua常用的4中遍历方式

for key, value in pairs(tbtest) do          XXX  end  这样的遍历顺序并非是tbtest中table的排列顺序,而是根据tbtest中key的hash值排列的顺序来遍历的。for key, value in ipairs(tbtest) do          XXX  end   这样的循环必须要求tbtest中的key为顺序的,而且必须是从1开始,ipairs只会从1开始按连续的key顺序遍历到key不连续为止。 for i=1, #(tbtest) do          XXX  end  这种遍历,只能遍历当tbtest中存在key为1的value时才会出现结果,而且是按照key从1开始依次递增1的顺序来遍历,找到一个递增不是1的时候就结束不再遍历,无论后面是否仍然是顺序的keyfor i=1, table.maxn(tbtest) do          XXX  end 这种效率太低了

 

 

推荐的方法:

--迭代器 function pairsByKeys(t)          local a = {}          for n in pairs(t) do                  a[#a+1] = n          end          table.sort(a)          local i = 0          return function()              i = i + 1              return a[i], t[a[i]]          end  end for key, value in pairsByKeys(tbtestAward) do       if nSeq <= key then            return key       end 

 

转载于:https://www.cnblogs.com/liuqing0328/p/4818681.html

你可能感兴趣的文章
内存溢出之Tomcat内存配置-catalina.sh or catalina.bat
查看>>
mysql触发器总结
查看>>
我的友情链接
查看>>
Linux云计算架构师成长之路-第一章 计算机硬件基础-1.4 服务器主要部件
查看>>
json遍历
查看>>
Linux运维工程师面试题
查看>>
常用shell脚本
查看>>
10.31 springMVC 与 hibernate 配置
查看>>
总结最近学的struts学习笔记《1》
查看>>
windows server 2008系统IOS镜像下载地址
查看>>
Sharesdk 2.6.1 真坑
查看>>
python登录加随机验证码校验程序(装饰器内置函数的理解)
查看>>
adt 升级r22 之后ClassNotFoundException的解决方法
查看>>
脚本练习(1)
查看>>
Android_调试命令
查看>>
学习笔记之爬虫篇
查看>>
linux shell中find的使用
查看>>
mysql-mmm主主复制
查看>>
vim复制,粘贴,删除,撤销,替换,光标移动等用法
查看>>
数据库纯净下的主从复制
查看>>