您的位置:首页 > 编程语言 > Lua

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 迭代器 遍历