私はloadfile
でロードしたスクリプトを実行しています。また、親luaスクリプトのスコープに変数love
があります。この変数を子スクリプトのenivornment内にnil
としたいのですが、それ以外はすべて手を触れないでください(print
、math
、pairs
、すべてのLuaの標準ライブラリ)。どうやってやるの?luaの子スクリプト環境から変数を削除するには?
これは動作しません:
local scenario = love.filesystem.load(script)
local env = {}
setmetatable(env, { __index = _G })
env.love = nil
env.game = Game
setfenv(scenario, env)
これを 'nil'に設定するのはなぜですか? –
'nil'に設定すると、テーブル内のエントリが削除されます。 – lhf
しかし、それはしません - 子スクリプトはまだその範囲で '愛'を使用することができます。 –