您好,我想学习Lua,但我不知道Local用于什么用途,而且我找不到其他语言的定义或比较。那么Lua的Local和VB的Dim一样吗?
答案 0 :(得分:2)
基本概念很简单
function do_stuff()
local a = 20
b = 20
end
do_stuff()
print(a) --> nil
print(b) --> 20
如示例所示,a
仅存在于do_stuff
内,但在该功能完成后“消失”。
如果您考虑使用闭包,它将变得更加复杂。
想象这种情况:
function do_stuff
local a = 20
local f = function() return a end
return f
end
print(a) --> nil
print(f()) --> 20
乍一看,这似乎很神奇。毕竟,a
应该消失了,但是f()
仍然以某种方式找到了它。这是因为f()
保存了对a
的引用并使其保持活动状态。至少在该名称下,变量 a
仍然存在。
尽管要回答原始问题,不,它们根本不是一回事。