模块:No globals查看源代码查看历史
40px | 此Luazh-cn:模块; zh-tw:模組;在约11,000,000个页面中使用。 为了避免困扰和不必要的服务器负载,所有变更都应该经过测试。请先在zh-cn:模块; zh-tw:模組;的/sandbox或者/testcases子页面测试。测试过的内容可以一次更改。修改前請考虑至讨论页讨论变更。 |
本模块已被保护。此为高度可见模块,其已用于大量条目或被频繁替换引用。由于破坏或失误会影响诸多页面,即便细小的改动也可能导致大量服务器负载,因此已被保护,不可编辑。 |
This module causes an error if any nil global is read or if any global is written to, with the exception of arg. To use, add require('Module:No globals')
to the top of the module using it. The arg variable is excluded because it is necessary for Scribunto's require function to work properly. (See the Scribunto source code here.)
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)