您的位置:首页 > 编程语言 > Lua

Lua 闭包知识点 -- 学习过程笔记,会比较乱

2017-07-27 11:12 344 查看
local data = 100    -- data1
local function fun1()
print(data)
data = data+50
end

data = 200

local data = 300    -- data2

local function fun2()
print(data)
data = data+50
end

data = 400

fun1()      -- 200
fun2()      -- 400
fun1()      -- 250
fun2()      -- 450


上面代码 闭包的实际运用。

闭包是由函数和与其相关的引用环境组合而成的实体。

所有闭包并不是一个函数,我现在暂且认为闭包是一个对象(后期发现错了再该)。因为函数在运行是只有一个实例,在定义后不会在在执行期间发生变化,而闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。

关于lua闭包大家可以看看这篇文章:

http://www.cnblogs.com/ringofthec/archive/2010/11/05/luaClosure.html

这篇文章中,有讲到lua闭包 = {环境引用, upvalue, env}组成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua 闭包