_G:指向全局table
设置一下 _G的元表和元方法,通过重写 __newindex和 ___index元方法的方式来做到禁止新建全局变量和访问不存在的全局变量时提示错误。
setmetatable(
_G,
{
__newindex = function(_, key)
print("attempt to add a new value to global, key: " .. key)
end,
__index = function(_, key)
print("attempt to index a global value, key: " .. key)
end
}
)