123456789101112131415161718192021222324252627 |
- local strict = {}
- strict.defined = {}
- -- used to define a global variable
- function global(t)
- for k, v in pairs(t) do
- strict.defined[k] = true
- rawset(_G, k, v)
- end
- end
- function strict.__newindex(t, k, v)
- error("cannot set undefined variable: " .. k, 2)
- end
- function strict.__index(t, k)
- if not strict.defined[k] then
- error("cannot get undefined variable: " .. k, 2)
- end
- end
- setmetatable(_G, strict)
|