写业务的时候很少用到闭包,也没有仔细理解,看到一个博客写闭包写的不错就理解一下,整理一下方便自己理解:
引用:https://blog.csdn.net/albertsh/article/details/82906284
print("\nexample 1:");
function counter()
local count = 0;
return function()
count = count + 1;
return count;
end
endfunc = counter();
-- 这里的实质是 func = function() count = count + 1 return count end
-- 以后每次调用 func() 都是调用这个 函数
-- 这是一个标准的计数器,也是一个标准的闭包,也就是说Lua支持这样的语法,闭包中可以在定义之后一直引用外部的变量,并且在返回函数的整个使用生命周期内都可以引用这个变量,加入外部修改了这个变量,闭包中引用的值也会改变
print(func());
print(func());
print(func());