私が2つのファイルを持っているとしましょう:
1つはmainFile.luaと呼ばれます。
function altDoFile(name)
dofile(debug.getinfo(1).source:sub(debug.getinfo(1).source:find(".*\\")):sub(2)..name)
end
altDoFile("libs/caller.lua")
function callBack()
print "called back"
end
doCallback()
もう1つは、libsフォルダーにあるcaller.luaと呼ばれます。
function doCallback()
print "performing call back"
_G["callBack"]()
end
最初のファイルを実行した場合の出力は次のとおりです。
"performing call back"
それから何も、私は行が欠けています!
callBackが実行されないのはなぜですか?これは意図された動作ですか、それを回避するにはどうすればよいですか?
関数が文字列から呼び出されているという事実は重要なので、変更することはできません。
更新:私はそれをさらにテストしました、そして_G ["callBack"]は関数(type())に解決しますが、それでも呼び出されません