LUA 运行期间不独占线程的递归,通过回调实现

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)

 

posted @ 2017-04-13 09:48  时空观察者9号  阅读(166)  评论(0编辑  收藏  举报