--[[lua闭包实现continue,lua的循环没有continue关键字,好多人都用while true加break的方式来实现continue,但while true如果用不好,粗心大意陷入死循环就尴尬了。以下是闭包方式实现]]
for i=0,5 do
    (function()
        if i==1 then
            return
        end
        print(i)
    end)()
end
--最终打印0 2 3 4 5跳过了1
--还可以写成
for i=0,5 do
    local j = function()
        if i==1 then
            return
        end
        print(i)
    end
    j()
end
--而大多数人用while true的方式实现continue是这样写的:
for i=0,5 do
    while true do
        if i==1 then
            break
        end
        print(i)
        break
    end
end
--用while true的风险在于,需要至少两个break,因为粗心大意少写容易导致死循环的问题
Copyright © TouchNet 2015 all right reserved,powered by Gitbook最后修订时间: 2022-06-21 09:21:04

results matching ""

    No results matching ""