lua迭代

迭代

function enum(array)

    local index = 1

    return function() --返回迭代函数

        local ret = array[index]

        index = index + 1

        return ret

    end

end

function foreach(array, action)

    for element in enum(array) do

        action(element)

    end

end

arr = {1, 2, 3}

foreach(arr, print)

结果是:

1

2

3

 

迭代是for语句的一种特殊形式,for语句可以驱动迭代函数对一个给定集合

进行遍历。正式、完备的语法说明较复杂,请参考Lua手册。

如前面代码所示:enum函数返回一个匿名的迭代函数,for语句每次调用该

迭代函数都得到一个值(通过element变量引用),若该值为nil,则for循

环结束。

posted @ 2015-11-02 11:29  吴筱军  阅读(348)  评论(0编辑  收藏  举报