源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Lua中的迭代器(iterator)浅析

  • 时间:2020-09-10 05:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Lua中的迭代器(iterator)浅析
Lua有迭代器的概念,通过不同的迭代器,几乎可以遍历所有的东西。标准库提供的几种迭代器:io.lines(迭代文件中的每行), pairs(迭代table元素),ipairs(迭代数组元素), string.gmatch(迭代字符串中单词)等。  另外,可以自定义迭代器 使用pairs迭代器变量table
[u]复制代码[/u] 代码如下:
> 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
[u]复制代码[/u] 代码如下:
> for i in ipairs(t) do print(i) end 1 2 3 4
[b]迭代器与Closure(闭包)[/b] 在Lua中,通常将迭代器表示为函数,每次调用一此函数,即返回集合中的"下一个"元素。一个想到的方法,就是定义一个全局索引变量,每次调用函数,更新该变量;问题在于怎么去清零这个索引变量,不是很方便。   使用闭包,实现迭代器的问题迎刃而解
[u]复制代码[/u] 代码如下:
function iter(t) local index = 0 return function() index = index + 1 return t[i] end end
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部