Lua - 使用闭包函数开发自己的迭代器

使用闭包的奇数开发 迭代器,直接看源码了

-- 使用闭包 开发自己的迭代器
function Itrs(tableList)
    -- 指定 upValue
    local i = 0
    return function()
        i = i + 1
        -- 输出 下标
        return tableList[i]
    end
end
--表的 内容可以自定义
myTable = {
    10,
    20,
    40,
    50,
    39,
    40,
    90,
    99
}
-- 迭代输出
result = Itrs(myTable)


-- 使用 while 作输出
function ShowWhileTable()
    while (true) do
        local j = result()
        -- 如果说对象为空的话跳出
        if (j == nil) then
            break
        end
        print(j)
    end
end

-- 使用 for 进行输出、
function ShowForTable()
    for i in pairs(myTable) do
        --for 循环中,如果有 nil 的话可以直接进行跳出
        local j = result()
        print(j)
    end
end
ShowForTable()

最后在 VSCode 中的运行结果是这样的:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值