Lua 学习笔记——_ENV和_G
最近在学lua5.3 发现里面的_G和_ENV的概念容易混淆,花了点时间理了一下,现在做个笔记以防后面忘记,直接用代码例子说明
test_env.lua:
local local_var = "local_var" -- 该变量为该模块的局部变量
global_var = "global_var" -- 该变量为全局变量注册在 _G 中
-- print("_ENV.local_var:", _ENV.local_var) -- 这句证明 local 变量不存在于 _ENV 中
test_env = {} -- 如果这里设为 local 则不能在 require 一次后在其他文件中直接调用 test_env 后面会说明
setmetatable(test_env, {__index = _G}) -- 设置 _G 是为了使用 print 函数还有验证上面的 global_var
_ENV = test_env