• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

LUA学习笔记2-Iterators and the Generic for

发布: 2007-7-04 20:48 | 作者: admin | 来源:  网友评论 | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
Iterator是一种允许你遍历一个集合中元素的结构. 在Lua中, 我们可以用function实现iterator, 每次调用这个函数, 它都返回集合中的下一个元素. 一个iterator需要保留一些用来遍历的信息, 例如当前元素的位置以及什么时候结束. Closure的机制非常适合这个工作. 遍历所需的环境变量可以保存在upvalue中, 这样每一次调用这个closure, 他都返回遍历某一个list的iterator. 由于这样的Closure是用来产生iterator的, 我们称这样的closure为iterator factory.
每一次
以下是一个简单的iterator factory, 用来遍历一个table.
    function list_iter (t)
      local i = 0
      local n = table.getn(t)
      return function ()
        i = i + 1
        if i <= n then return t[i] end
      end
    end

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/