经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Lua » 查看文章
Lua基础迭代器的使用实例
来源:jb51  时间:2018/12/20 9:45:41  对本文有异议

官方的文档说:

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

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

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

下面看几个例子:

ipairs.lua

  1. name = {"YYX","HJZ"};
  2. --以下称为泛型for迭代器
  3. --其中key表示索引值,从1开始计算
  4. --value表示数组中的元素
  5. --ipairs表示迭代函数
  6. for key,value in ipairs(name) do
  7. print(key,value);
  8. end
  9. --实现一个自加算法无状态的迭代函数
  10. function NumAdd(count,var)
  11. --定义一个局部变量_count并初始化为0
  12. local _count = 0 ;
  13. --参数count表示该函数需要迭代的次数
  14. --其实这里的思路有点像C的递归
  15. --实现递归需要有条件退出,有始有终
  16. if(var < count)
  17. then
  18. var = var + 1 ;
  19. return var , var + _count ;
  20. end
  21. end
  22. --输出迭代函数的值,i表示迭代次数,n表示迭代后的数值
  23. for i , n in NumAdd,5,0
  24. do
  25. print(i,n);
  26. end
  27. array = {1,2,3,4,5,6,7,8,9,10};
  28. function array_put(length , var)
  29. --获取Array的长度
  30. length = #array ;
  31. --如果传入需要遍历的值小于Array的长度,就遍历
  32. if(var < length)
  33. then
  34. var = var + 1 ;
  35. return var , array[var] ;
  36. end
  37. end
  38. for i , n in array_put,10,0
  39. do
  40. print(i,n);
  41. 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

总结

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号