Lua基础迭代器的使用实例

 更新时间:2018年12月19日 14:24:04   作者:Engineer-Bruce_Yang  
今天小编就为大家分享一篇关于Lua基础迭代器的使用实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

官方的文档说:

迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址

在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。

迭代器的种类主要有:泛型for迭代器、无状态的迭代器、多状态的迭代器

下面看几个例子:

ipairs.lua

name = {"YYX","HJZ"};
--以下称为泛型for迭代器
--其中key表示索引值,从1开始计算
--value表示数组中的元素
--ipairs表示迭代函数
for key,value in ipairs(name) do
 print(key,value);
end
--实现一个自加算法无状态的迭代函数
function NumAdd(count,var)
 --定义一个局部变量_count并初始化为0
 local _count = 0 ;
 --参数count表示该函数需要迭代的次数
 --其实这里的思路有点像C的递归
 --实现递归需要有条件退出,有始有终
 if(var < count)
 then
     var = var + 1 ;
  return var , var + _count ;
 end
end 
--输出迭代函数的值,i表示迭代次数,n表示迭代后的数值
for i , n in NumAdd,5,0
do 
  print(i,n);
end
array = {1,2,3,4,5,6,7,8,9,10};
function array_put(length , var)
 --获取Array的长度
 length = #array ;
 --如果传入需要遍历的值小于Array的长度,就遍历
 if(var < length)
 then 
   var = var + 1 ;
   return var , array[var] ;
 end 
end
for i , n in array_put,10,0
do
 print(i,n);
end 

解释运行:

lua ipairs.lua

运行结果:

1       YYX
2       HJZ
1       1
2       2
3       3
4       4
5       5
1       1
2       2
3       3
4       4
5       5
6       6
7       7
8       8
9       9
10      10

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Lua语言新手简单入门教程

    Lua语言新手简单入门教程

    这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03
  • Lua函数用法研究

    Lua函数用法研究

    这篇文章主要介绍了Lua函数用法研究,本文讲解了函数、变量的用法、返回多个结果值和可变参数等特性的示例,需要的朋友可以参考下
    2015-07-07
  • Lua中的全局变量、非全局变量总结

    Lua中的全局变量、非全局变量总结

    这篇文章主要介绍了Lua中的全局变量、非全局变量总结,全局变量可称之为Lua环境变量,需要的朋友可以参考下
    2014-09-09
  • Lua教程(二):基础知识、类型与值介绍

    Lua教程(二):基础知识、类型与值介绍

    这篇文章主要介绍了Lua教程(二):基础知识、类型与值介绍,本文讲解了Hello World程序、代码规范、全局变量、类型与值等内容,需要的朋友可以参考下
    2015-04-04
  • linux系统安装Nginx Lua环境

    linux系统安装Nginx Lua环境

    因项目需求,需要在Linux系统下搭建一套nginx+lua的开发环境,经过一番摸索,现总结如下,希望大家能够喜欢。
    2016-12-12
  • lua获取未来某时间点的时间戳解决方案

    lua获取未来某时间点的时间戳解决方案

    这篇文章主要介绍了lua获取未来某时间点的时间戳解决方案,需要的朋友可以参考下
    2014-12-12
  • Lua中强大的元方法__index详解

    Lua中强大的元方法__index详解

    这篇文章主要介绍了Lua中强大的元方法__index详解,本文着重讲解了使用__index元方法实现table的继承,需要的朋友可以参考下
    2014-09-09
  • Lua中使用二维数组实例

    Lua中使用二维数组实例

    这篇文章主要介绍了Lua中使用二维数组实例,本文直接给出代码实例,看代码更容易理解,需要的朋友可以参考下
    2015-06-06
  • Lua读写文件代码示例

    Lua读写文件代码示例

    这篇文章主要介绍了Lua读写文件代码示例,本文讲解了读写文件的模式以及读写文件代码实例,需要的朋友可以参考下
    2015-04-04
  • Lua中的协同程序详解

    Lua中的协同程序详解

    这篇文章主要介绍了Lua中的协同程序详解,本文非常详细的讲解了Lua中的协同程序,同时讲解了生产者-消费者问题,需要的朋友可以参考下
    2014-09-09

最新评论