나는 loadfile
으로로드 한 스크립트를 실행했다. 또한 부모 루아 스크립트의 범위에 love
변수가 있고이 변수는 자식 스크립트 enivornment 안에 nil
이 되길 원하지만 다른 모든 것은 그대로 둔다 (print
, math
, pairs
, 루아의 모든 표준 라이브러리). 어떻게해야합니까?루아의 하위 스크립트 환경에서 변수를 제거하는 방법은 무엇입니까?
이 작동하지 않습니다 env
_G
에서 상속과는 너무 env.love
이 _G
에서 해결되기 때문에
local scenario = love.filesystem.load(script)
local env = {}
setmetatable(env, { __index = _G })
env.love = nil
env.game = Game
setfenv(scenario, env)
왜 'nil'로 설정하면 추가되지 않습니까? –
'nil '으로 설정하면 테이블의 항목이 제거됩니다. – lhf
하지만 자식 스크립트는 여전히 그 영역에서'love'를 사용할 수 있습니다. –