美文网首页
Lua中迭代的使用(小技巧)

Lua中迭代的使用(小技巧)

作者: Zhang小二 | 来源:发表于2019-04-04 17:48 被阅读0次

原理

首先,初始化,计算in后面表达式的值,表达式应该返回泛型 for 需要的三个值:迭代函数、状态常量、控制变量;与多值赋值一样,如果表达式返回的结果个数不足三个会自动用nil补足,多出部分会被忽略。
第二,将状态常量和控制变量作为参数调用迭代函数。
第三,将迭代函数返回的值赋给变量列表。
第四,如果返回的第一个值为nil循环结束,否则执行循环体。
第五,回到第二步再次调用迭代函数

这样构造迭代器就非常简单了,如果迭代过程中,除控制变量外,还需要额外的变量状态,则可以使用闭包的方式创建迭代器,当然,也可以将变量放到状态常量中,状态常量使用table存储

示例

function square(iteratorMaxCount, currentNumber)
    if currentNumber < iteratorMaxCount then
        currentNumber = currentNumber + 1
        return currentNumber, currentNumber * currentNumber
    end
end

for i, n in square, 3, 0
do
    print(i, n)
end

引用原文:http://www.runoob.com/lua/lua-iterators.html

相关文章

  • Lua中迭代的使用(小技巧)

    原理 首先,初始化,计算in后面表达式的值,表达式应该返回泛型 for 需要的三个值:迭代函数、状态常量、控制变量...

  • ARTS第一周

    1.Algorithm:压缩字符串 2.Review:supervisord的使用 3.Tip:Lua中迭代的使用...

  • 2018-08-02

    lua语言中使用的小技巧 lua语言虽然没有C/C++语言式的三目运算,但是我们可以通过它短路式的逻辑方式实现三目...

  • lua--迭代器、模块、元表

    接着lua的使用,迭代器、模块和元表,元表为重点需要关注的内容 一、迭代器 pairs就是一个迭代器,它的返回值是...

  • lua中return提示'end' expected

    lua中return提示'end' expected 问题   最近在使用lua的时候发现, LUA是不能随便返回...

  • lua学习之迭代器与泛型for第一篇

    迭代器与泛型 for 1 迭代器与 closure 「迭代器」是一种可以遍历一种集合中的所有元素的机制 在 lua...

  • Lua语言学习教程

    lua闭包 函数尾调用 迭代器

  • 那些年踩过的lua雷点

    算来lua脚本的使用也有一年了,记录一些在项目使用过程中碰到的雷点,没注意的话就容易踩坑。 1.迭代器 pairs...

  • Redis中调用Lua脚本阻塞

    在高并发系统中,redis的使用会比较频繁,lua脚本让redis的使用更加灵活。redis中使用lua脚本的好处...

  • Cocos2d-x 异常处理

    Lua中异常处理分为pcall、xpcall、debug,若需在Lua中处理错误,必须使用 pcall(prote...

网友评论

      本文标题:Lua中迭代的使用(小技巧)

      本文链接:https://www.haomeiwen.com/subject/ropqiqtx.html