每次执行到一个 local 语句都会定义出一个新的局部变量。 看看这样一个例子:
a = {}
local x = 20
for i=1,10 do
local y = 0
a[i] = function () y=y+1; return x+y end
end
这个循环创建了十个 closure(这指十个匿名函数的实例)。 这些 closure 中的每一个都使用了不同的y变量, 而它们又共享了同一份x。
每次执行到一个 local 语句都会定义出一个新的局部变量。 看看这样一个例子:
a = {}
local x = 20
for i=1,10 do
local y = 0
a[i] = function () y=y+1; return x+y end
end
这个循环创建了十个 closure(这指十个匿名函数的实例)。 这些 closure 中的每一个都使用了不同的y变量, 而它们又共享了同一份x。
Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务