我使用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