3

設定言語として Lua を使用しています。誰もが知っているように、構成にはシステム全体の構成とユーザーの構成が必要です。

Lua は元の値を上書きするのではなく保持することがわかりました。

たとえば、これは最初のソース ファイルです。

-- a.lua
var=1

そして2番目のソースファイル

-- 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オーバービュー変数を許可する方法を知っている人はいますか? どうもありがとう。(上記のソースは単なる例です。実際に私は C で Lua を使用しています)

PS:上記のテストを再度確認したところ、動作しました。Nicol の回答の下にあるコメントを参照してください。

4

2 に答える 2

3

通常のアプローチはtable、システム パラメータとtableユーザー パラメータを使用することです。例えば、

a.lua

sys = { var = 1; a = 3 }

b.lua

usr = { a = 5; b = 7 }

構成マネージャーは

setmetatable(usr,{__index = sys})

テスト:

> =usr.a
5
> =usr.var
1
> =usr.b
7
> 
于 2012-08-25T02:31:12.460 に答える
1

エラーを再現しようとしましたが、期待どおりに機能しました。したがって、これを取得している場合は、言及していない場所で行っていることはほぼ確実です。それらのファイルには、あなたが言っていることが含まれていると確信していますか?

于 2012-08-25T10:28:05.313 に答える