Ich habe ein Skript, das ich mit loadfile
laden und dann ausführen. Auch ich habe die Variable love
im Bereich der Eltern Lua Skript und ich möchte diese Variable nil
in der Kindskript-Enivorment aber alles andere unberührt (print
, math
, pairs
, alle Standard-Lib von Lua). Wie kann ich das machen?Wie entferne ich eine Variable aus einer untergeordneten Skriptumgebung in lua?
arbeiten Dies gilt nicht:
local scenario = love.filesystem.load(script)
local env = {}
setmetatable(env, { __index = _G })
env.love = nil
env.game = Game
setfenv(scenario, env)
Warum wird es nicht auf "nil" gesetzt? –
Einstellung auf "Null" entfernt einen Eintrag in einer Tabelle. – lhf
aber es nicht - das Kind-Skript kann immer noch 'Liebe' in seinem Umfang verwenden. –