local function test()
    local iCount = 0;
    return function ()
        iCount = iCount + 1
        return iCount
    end
end

local test1 = test()
print(test1())
print(test1())
print(test1())
print("------------")
local test2 = test()
print(test2())
print(test2())
print(test2())
--lua闭包:一个函数加上它可以正确访问的upvalues
--upvalue:外部函数的局部变量(类似于c++的static局部变量,但又完全不同)
--区别:c的静态变量是一个静态的地址,而upvalue是一个运行时的对象,可以有多个实例。