strict.lua

来自「支持中文变量的lua,基于lua 5.1.1源码修改而成」· LUA 代码 · 共 35 行

LUA
35
字号
---- strict.lua-- checks uses of undeclared global variables-- All global variables must be 'declared' through a regular assignment-- (even assigning nil will do) in a main chunk before being used-- anywhere or assigned to inside a function.--local mt = getmetatable(_G)if mt == nil then  mt = {}  setmetatable(_G, mt)endmt.__declared = {}mt.__newindex = function (t, n, v)  if not mt.__declared[n] then    local w = debug.getinfo(2, "S").what    if w ~= "main" and w ~= "C" then      error("assign to undeclared variable '"..n.."'", 2)    end    mt.__declared[n] = true  end  rawset(t, n, v)end  mt.__index = function (t, n)  if not mt.__declared[n] and debug.getinfo(2, "S").what ~= "C" then    error("variable '"..n.."' is not declared", 2)  end  return rawget(t, n)end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?