在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在一个lua文件中书写的代码, 使用的变量, 需要设置其运行环境。 目的: 1、 不破坏全局环境。 2、 限定文件所使用的环境, 作为沙箱功能。 解法
限定运行空间环境的文件: local m = {} m.dingzhiprint = function () print("nasView print") print(os.getenv("PWD")) end bbb = 1 print("dmenu="..dmenu) return m
加载上个文件的代码 (将dmenu的值,传入上个文件, 并限定只能在全局环境中读取): function callfunc() local dmenu = "aaaa" local prog = _G.loadfile("newModule.lua") --check lua or chunk --local _env local env = setmetatable({dmenu=dmenu}, {__index=_G}) --local env = getfenv(1) if env then --_env = getfenv (prog) setfenv (prog, env) end prog () end callfunc()
|
请发表评论