• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua中的迭代器(iterator)浅析

Lua中的迭代器(iterator)浅析

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了Lua中的函数(function)、可变参数、局部函数、尾递归优化等实例讲解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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
</div>
用ipairs访问所有的table的所有key
> for i in ipairs(t) do
print(i)
end
1
2
3
4
</div>

迭代器与Closure(闭包)

在Lua中,通常将迭代器表示为函数,每次调用一此函数,即返回集合中的"下一个"元素。一个想到的方法,就是定义一个全局索引变量,每次调用函数,更新该变量;问题在于怎么去清零这个索引变量,不是很方便。
 
使用闭包,实现迭代器的问题迎刃而解
function iter(t)
local index = 0
return function()
index = index + 1
return t[i]
end
end
</div>

</div>

您可能想查找下面的文章:

相关文章

  • Lua脚本语言基本语法快速入门教程
  • C调用lua函数需要考虑的问题
  • Lua模块和模块载入浅析
  • Lua中字符串(string)浅析
  • Lua协同程序(COROUTINE)运行步骤分解
  • Lua教程(三):值与类型介绍
  • Lua中string.len()使用指南
  • Lua中的迭代器和泛型for学习总结
  • Lua中的一些常用函数库实例讲解
  • Lua中的闭包小结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 浅谈chuck-lua中的多线程
    • Lua中的基本数据类型详细介绍
    • Lua教程(二):基础知识、类型与值介绍
    • Lua中的文件I/O操作教程
    • Lua中变相实现continue跳出循环
    • Lua的函数环境、包实例讲解
    • Lua面向对象之类和继承
    • Lua中获取utf8字符串长度的方法和自定义函数
    • Lua table中安全移除元素的方法
    • 安装Nginx+Lua开发环境

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有