小羊驼和你一起学习cocos2d-x与lua之一(迭代器pairs 和 ipairs区别)
来源:互联网 发布:天庭淘宝店txt下载 编辑:程序博客网 时间:2024/04/27 14:25
标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的
(string.gmatch)等等
pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;
但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key
- 下面举个例子吧!
- eg:
- local tabFiles = {
- [3] = "test2",
- [6] = "test3",
- [4] = "test1"
- }
- for k, v in ipairs(tabFiles) do
- print(k, v)
- end
- 猜测它的输出结果是什么呢?
- 根据刚才的分析,它在 ipairs(tabFiles) 遍历中,当key=1时候value就是nil,所以直接跳出循环不输出任何值。
- >lua -e "io.stdout:setvbuf 'no'" "Test.lua"
- >Exit code: 0
- 那么,如果是
- for k, v in pairs(tabFiles) do
- print(k, v)
- end
- 则会输出所有 :
- >lua -e "io.stdout:setvbuf 'no'" "Test.lua"
- 3 test2
- 6 test3
- 4 test1
- >Exit code: 0
- 现在改变一下表内容,
- local tabFiles = {
- [1] = "test1",
- [6] = "test2",
- [4] = "test3"
- }
- for k, v in ipairs(tabFiles) do
- print(k, v)
- end
- 现在的输出结果显而易见就是key=1时的value值test1
- >lua -e "io.stdout:setvbuf 'no'" "Test.lua"
- 1 test1
- >Exit code: 0
- --[示例1.]--
- local tt =
- {
- [1] = "test3",
- [4] = "test4",
- [5] = "test5"
- }
- for i,v in pairs(tt) do -- 输出 "test4" "test3""test5"
- print( tt[i] )
- end
- for i,v in ipairs(tt) do -- 输出 "test3" k=2时断开
- print( tt[i] )
- end
- -- [[示例2.]] --
- tbl = {"alpha", "beta", [3] ="uno", ["two"] ="dos"}
- for i,v in ipairs(tbl) do --输出前三个
- print( tbl[i] )
- end
- for i,v in pairs(tbl) do --全部输出
- print( tbl[i] )
- end
- 小羊驼和你一起学习cocos2d-x与lua之一(迭代器pairs 和 ipairs区别)
- 小羊驼和你一起学习cocos2d-x与lua之三(lua匿名函数)
- 小羊驼和你一起学习cocos2d-x与lua之四(泛型for学习)
- 小羊驼和你一起学习cocos2d-x与lua之二(表达式特殊写法)
- 小羊驼和你一起学习cocos2d-x与lua之五(HelloLua分析)
- 小羊驼和你一起学习cocos2d-x与lua之五(lua编写cocos2d-x游戏)
- 小羊驼和你一起学习cocos2d-x与lua之六(lua编写cocos2d-x注意事项)
- 小羊驼和你一起学习cocos2d-x之六(lua、android.mk)
- 小羊驼和你一起学习cocos2d-x之一(异步加载资源利用addImageAsync)
- 小羊驼和你一起学习cocos2d-x与lua之零(lua教程 高清无码你懂 请好评吧 绝对极品)
- 小羊驼和你一起学习cocos2d-x之八(tinyXml android cocos2d-x 2.x)
- 【LUA学习】ipairs和pairs的区别
- lua pairs和ipairs区别
- Lua -- pairs和ipairs区别
- 小羊驼和你一起学习cocos2d-x之三(进度条、CCProgressTimer)
- 小羊驼和你一起学习cocos2d-x之四(摇杆)
- 小羊驼和你一起学习cocos2d-x之五(结合摇杆控制玩家走动)
- 【Lua】pairs 和 ipairs
- [cocos2dx开发技巧1]工具CocosBuilder的使用--demo介绍
- C++笔记(1)explicit构造函数
- Google 搜索技巧
- oracle表空间转换
- win7+vs2010+opnet教程
- 小羊驼和你一起学习cocos2d-x与lua之一(迭代器pairs 和 ipairs区别)
- linux下的find文件查找命令与grep文件内容查找命令
- 计数排序
- CursorWindow can not be created due to cursor [memory] leak
- Freemarker语法简介
- Struts2获取request
- 每个C程序员应该知道的未定义行为#2/3
- MyBitis(iBitis)系列随笔之一:MyBitis入门实例
- C++ 线程池的封装实现