私の最初の.luaファイルの変数を上書きしようとしています。ファイルを含めて変数を上書きする
file1.lua
val = 1
require "file2"
file2.lua
val = 2
valはまだこの後の1であるとして、残念ながら、これは、動作するようには思えません。私はそれらのファイルの潜在的な将来のユーザーがファイルを含めることができるように、思い付いた解決策は、私はLuaのを初期化するとき、今挿入するためだ新しい関数、次のとおりです。
function include(file)
dofile("path/since_dofile_doesnt_seem_to_use/package/path" .. file .. ".lua")
end
これは期待どおりに動作しますが、私はまだLuaを初めて使っているので、もっと良い解決策があるかどうかを知りたいと思います。多分何かがすでに組み込まれていますか?
更新:
私の問題は、私が誤って複数のファイルを介して、FILE2を複数回必要としたことで、Luaが値を変更するには、もう一度それをロードしません。解決済み。
'val'がグローバルであれば、最初に試してみるべきです。 –
さて、「ローカル」はなく、グローバルでなければなりません。それも私を混乱させるものです。私はちょうど純粋なルアでこれをテストしました、そして、それは働いています...?私はluaL_dofileでfile1を実行しています。そこには機能しません。これは奇妙です。 – Mars
ええと、C(++)コードを投稿する必要があります –