Lua的Local和VB的Dim一样吗?

时间:2019-09-19 11:39:44

标签: vb.net lua

您好,我想学习Lua,但我不知道Local用于什么用途,而且我找不到其他语言的定义或比较。那么Lua的Local和VB的Dim一样吗?

1 个答案:

答案 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仍然存在。


尽管要回答原始问题,不,它们根本不是一回事。