zoukankan      html  css  js  c++  java
  • Lua 迭代器

    泛型 for 迭代器

    array = {"Lua", "Tutorial"}
    
    for key,value in ipairs(array) 
    do
       print(key, value)
    end

    输出

    Lua
    Tutorial

    无状态的迭代器

    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

    输出

    1    1
    2    4
    3    9

    多状态的迭代器

    array = {"Lua", "Tutorial"}
    
    function elementIterator (collection)
       local index = 0
       local count = #collection
       -- 闭包函数
       return function ()
          index = index + 1
          if index <= count
          then
             --  返回迭代器的当前元素
             return collection[index]
          end
       end
    end
    
    for element in elementIterator(array)
    do
       print(element)
    end

    输出

    Lua
    Tutorial

  • 相关阅读:
    第一次作业
    第0次作业
    第14、15周作业
    第七周作业
    第六周作业
    第四周作业
    第三周作业
    第4次作业
    第3次作业
    第二次作业
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10000187.html
Copyright © 2011-2022 走看看