AOL's Web Log

Life is like a box of chocolate , you never know what you gonna get .

lua学习(二)

lua的有一个重要的概念就是闭包 :)
试一下 :

function newCounter()
 local i = 0
 return function() -- 匿名函数
  i = i + 1
  return i
 nd
end

c1 = newCounter()
print(c1()) --> 1
print(c1()) --> 2

其实actionscript也存在这种概念, 只是不推荐这样使用了
function newCounter()
{
 var i = 10;
 return function () // 匿名函数 
 {
  i = i + 1;
  return i;
 };
}
var c1 = newCounter();
trace(c1()); // 1
trace(c1()); // 2

调用newCounter就会建立一个闭包, i 不会被回收. 相对于匿名函数来说, i是它外部的局部变量, 它可以访问得到.
从而会改变i的值 :)
如果你另调一个newCounter就会另建一个闭包 :)

var c2 = newCounter();
trace(c2()); // 1
trace(c1()); // 3
trace(c2()); // 2

阅读更多
个人分类: 游戏开发
想对作者说点什么? 我来说一句

Lua语言学习资料汇总

2015年05月13日 33.25MB 下载

lua手册(学习lua好帮手)

2009年11月05日 276KB 下载

没有更多推荐了,返回首页

不良信息举报

lua学习(二)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭