首页 > 技术文章 > LUA 运行期间不独占线程的递归,通过回调实现

timeObjserver 2017-04-13 09:48 原文

function main(d)
    local function func(d)
        moveto(d, function()
            print("d=======", d)
            d = d - 1

            if d >0 then
                func(d)
            end
        end)
    end

    func(d)
end

function moveto(d, callback)
    callback()

end

main(4)

 注意,如下写法,程序报错:找不到global func

function main(d)
    local func = function(d)
        moveto(d, function()
            print("d=======", d)
            d = d - 1

            if d >0 then
                func(d)
            end
        end)
    end

    func(d)
end

function moveto(d, callback)
    callback()

end

main(4)

 

推荐阅读