lua之闭包

 闭包 这个词听起很新颖,我初步理解了这个闭包之后,感觉这个东西就是类样,闭包在lua中主要是 当你定义一个闭包,并创建了这个闭包的变量,闭包里面的值可以保存, 像在C++的里面static变量样,你写static int a = 5,其实这句只运行一次,你后面在执行到这里就自动跳过了,闭包可以创建N多个变量,每个变量的值又不一样,这就像类了,类有独立空间,里面的值是独立的,跟该类的其他实例无关,除了static的哈,而这闭包呢,差不多就是这意思了。  不过lua因为它可以 将一个函数赋给一个变量,可以在子函数里访问上一级函数的局部变量,所以就叫闭包了。 闭包看着字面意思就像类,跟类还是有点区别。

function newCounter()

    local i = 0;

    return function ()

                  i = i+1;

                 return i ;

              end

end

 

c1 = newCounter();

print(c1());           ---------------------1

print(c1());           ---------------------2

c2 = newCounter();

print(c2())            ---------------------1

 

   理解成类,觉得这东西就不怎么神秘了。

转载自:http://cplusplus2012.blog.163.com/blog/static/2066762682012725105319734/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值