lua闭合函数

function count( ... )
    local i = 0
    return function( ... )
        i = i+ 1
        return i
    end
end

local  func =  count(...)

print(func())
print(func())
print(func())

结果如下:

1
2
3
[Finished in 0.1s]

lua 闭合函数:一个函数加上该函数所需访问的所有“非局部变量”。

如上所示:count()函数返回了另一个函数,而这个函数使用了count()函数中的局部变量。当该函数被调用时,count()函数中的局部变量不会被重置。

此局部变量类似于c++中静态局部变量。

 

posted @ 2016-07-11 23:26  Guoliangjun  阅读(373)  评论(0)    收藏  举报