【Lua】闭包
2015-09-22 18:18
423 查看
今天用lua写回调的时候用到了闭包,定时器里面写了一个回调函数,用到了外面的局部变量
感觉对闭包概念还是很模糊,就上网查了下相关内容,从下面这个例子,应该能看出一些东西,
结果:
a,b ;a2,b2都有属于自己的局部变量iVal,互不影响,这个很像c++里面的引用传递。而且这个属于他们自己的iVal的值又像static局部变量一样具有记忆功能。当然它不是全局变量,出了test函数就不能访问了。
local tmpIdx = model.curStarIndex self.waitSecondId[tmpIdx] = self:schedule( function () waitSecond(self,tmpIdx) end, 2.0)
感觉对闭包概念还是很模糊,就上网查了下相关内容,从下面这个例子,应该能看出一些东西,
function test() local iVal = 0 function func1() print(iVal) end function func2() iVal = iVal + 10 end return func1, func2 end local a, b = test() a() b() a() local c,d = test() c() d() c() b() a()
结果:
a,b ;a2,b2都有属于自己的局部变量iVal,互不影响,这个很像c++里面的引用传递。而且这个属于他们自己的iVal的值又像static局部变量一样具有记忆功能。当然它不是全局变量,出了test函数就不能访问了。
相关文章推荐
- lua中遍历table的几种方式比较
- lua的table排序
- Lua中关于求模与求余的区别介绍
- 热更新-Android与Lua相互通信
- 笨木头Lua专栏 函数的几个特别之处
- Evaluate Reverse Polish Notation
- 【wireshark】插件开发(二):Lua插件开发介绍
- lua中基类和“继承机制”
- quick lua加密
- Lua基本函数库——新手必备
- lua 打印函数所有参数
- PE文件格式解析 LUA版本,兼容32/64位
- 写lua时需要注意的地方
- 清晰明亮的白色lua协程(coroutine)
- VS2012+LUA环境搭建
- lua-vs开发环境配置
- windows下编译lua几种方法
- Lua和Luajit的优势和不足(1)
- Lua学习之基本语法
- Windows下使用VS编译Lua