码迷,mamicode.com
首页 > 其他好文 > 详细

Lua迭代器

时间:2015-04-28 13:35:49      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素.

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

t={10,20,30}
for elem in list_iter(t) do
    print(elem)
end

范性for的语义:

for var_1,...,var_n in explist do block end
--等价于
do
    local _f ,_s,_var=explist--返回迭代函数、状态常量、控制变量
    while true do
        local var_1,...,var_n =_f(_s,_var)
        _var=var_1
        if _var==nil then break end
        block
    end
end

无状态的迭代器:

 

Lua迭代器

标签:

原文地址:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/4462595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!