Lua中的递归函数写法实例

先看例子吧:

function foo(i) --1  
    print("i: ", i) 
    return i 
end 
 
do 
 
--local foo; --2 
 local foo = function (i) --3 
    if i < 1 then 
        return 1 
    else 
        return i * foo(i - 1) --4 
    end 
 end 
 
 local a = foo(4) 
 print("a: ", a) 
 
end 

上面的例子,到if里面调用了foo(..),它会调用到do..end块里面的foo也就实现了局部函数的递归。