Lua中的迭代器(iterator)浅析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Lua中的迭代器(iterator)浅析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含651字,纯文字阅读大概需要1分钟。
内容图文
Lua有迭代器的概念,通过不同的迭代器,几乎可以遍历所有的东西。标准库提供的几种迭代器:io.lines(迭代文件中的每行), pairs(迭代table元素),ipairs(迭代数组元素), string.gmatch(迭代字符串中单词)等。
另外,可以自定义迭代器
使用pairs迭代器变量table
> t = {2,3,4,5}
> for i,v in pairs(t) do
>> print(i .. ‘ = ‘ .. v)
>> end
1 = 2
2 = 3
3 = 4
4 = 5
用ipairs访问所有的table的所有key
> for i in ipairs(t) do
print(i)
end
1
2
3
4
迭代器与Closure(闭包)
在Lua中,通常将迭代器表示为函数,每次调用一此函数,即返回集合中的"下一个"元素。一个想到的方法,就是定义一个全局索引变量,每次调用函数,更新该变量;问题在于怎么去清零这个索引变量,不是很方便。
使用闭包,实现迭代器的问题迎刃而解
function iter(t)
local index = 0
return function()
index = index + 1
return t[i]
end
end
原文:http://www.jb51.net/article/55516.htm
内容总结
以上是互联网集市为您收集整理的Lua中的迭代器(iterator)浅析全部内容,希望文章能够帮你解决Lua中的迭代器(iterator)浅析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。