【发布时间】:2023-03-10 10:16:01
【问题描述】:
Roberto Ierusalimschy 在 Programming in Lua (3rd Ed.) 中指出
Lua 中的一个常见习语是
local foo = foo此代码创建一个本地 变量
foo,并用全局值初始化它 变量foo。 (本地foo仅在其 声明。)当需要保留块时,此习惯用法很有用foo的原始值,即使稍后其他一些函数发生变化 全局foo的值;它还加快了对foo的访问。
谁能更详细地解释这一点并提供一个简单的例子?
目前,这个习语我能想到的唯一用途是管理与全局变量同名的局部变量(在给定的块中),这样全局变量在块之后保持不变。
一个例子:
foo = 10
do
local foo = foo
foo = math.log10(foo)
print(foo)
end
print(foo)
这给出了:
1
10
但是完全不用这个成语也可以做到这一点:
bar = 10
do
local bar = math.log10(bar)
print(bar)
end
print(bar)
给出相同的结果。所以我的解释似乎站不住脚。
【问题讨论】:
标签: lua