Lua中的pairs们(pairs,ipairs,gmatch)
2014-04-03 13:26
281 查看
我们都知道 pairs在英语中有一对,一双的意思。在Lua中,仍然是这个意思,不过这儿的对是键值对,也就是
key-value。
在Lua的文档中查询pairs,我们可以看到的有三个结果pairs,ipairs,string.gmatch,展开如下:这三个都用在for语句中,但是gmatch处理string类型,pairs和ipairs处理table类型。从表中的return值我们就可以看出 ipairs和pairs 的不同。 pairs用的next机制,可以遍历表中所有的key,并且还可以返回nil。 但是ipairs使用迭代器,不能返回nil,只能返回数值0,遇到nil则退出。所以,无论你table中的key用的什么类型,pairs都可以遍历完,而ipairs只能从1开始,遍历到表中出现的第一个不连续整数的key之前。(如果连1都没有,就直接退出了)而string.gmatch就很简单啦,两个参数,第一个是作用的string,第二个是匹配串(一般使用模式串居多),并返回每一个。最后把pairs们连起来,考读者们一个问题,我们就借用Lua文档中的例子:
t = {}s = "from=world, to=Lua"for k, v in string.gmatch(s, "(%w+)=(%w+)") dot[k] = v --这儿可以试试输出k和v的值endfor w in ipairs(t) doprint(w)endfor i,v in pairs(t) doprint(i,v)end题目很简单,这儿就不给出答案了,自己去调试才是王道。
相关文章推荐
- lua ipairs与 pairs ,冒号,点号 实例
- Lua语言中pairs和ipairs的区别
- Lua 中 pairs 和 ipairs 的区别
- Lua -- pairs和ipairs区别
- Lua中,泛型for循环遍历table时,ipairs和pairs的区别
- Lua语言中pairs和ipairs的区别
- Lua5.2.3源码阅读--Table(ipairs,pairs)
- lua 中pairs 和 ipairs差别
- lua中 pairs 和 ipairs区别 和用法
- Lua 中pairs和ipairs 区别
- Lua中ipairs()和pairs()的区别与使用
- Lua语言中pairs和ipairs的区别
- Lua语言中pairs和ipairs的区别
- lua实现ipairs、pairs的功能
- cocos-lua中pairs与ipairs遍历的区别
- 【LUA学习】ipairs和pairs的区别
- Lua中ipairs()和pairs()的区别与使用
- lua ipairs(t) and pairs(t)
- Lua语言中pairs和ipairs的区别
- lua中ipairs与pairs区别与注意