我使用Lua作为配置语言。大家都知道,配置应该有全系统的和用户的配置。让Lua覆盖全局变量
我刚刚发现Lua会保留原始值而不是覆盖它们。
例如,这是第一个源文件,
-- a.lua
var=1
和第二源文件
-- b.lua
var=2
这里的结果:
> lua-5.1
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> dofile ("a.lua")
> dofile ("b.lua")
> print(var)
1
没错。 var
尚未被覆盖。这会使用户自己的配置不起作用。任何人都知道如何让默认的Lua概述变量具有相同的变量名称?非常感谢。 (上面的源代码就是例子,实际上我使用的是Lua和C)
PS:我再次检查了上面的测试,它的工作原理。请参阅尼科尔的回答下的评论。
'a.lua'和'b.lua'都不会写入值'a'。事实上,我不知道为什么它不打印'nil'或者'1'来自哪里。你能提供一个可重现的案例吗? –
@NicolBolas抱歉,我犯了一个错误。它应该是'print(var)'那里。 – ekd123