编写模块时,文件在全局环境中运行,而不是在调用环境中:
-- other_file.lua
require('my_file')
-- my_file.lua
getfenv(2) == getfenv(0) -- true
setfenv(1, {}) -- or module(...)
getfenv(2) == getfenv(0) -- true
我不记得读过这个。是否在任何地方提及/记录?
(这个问题更多的是关于require
而不是getfenv
。我知道它在 5.2 中被删除了。)