脚本语言不需要编译成exe是好的,但通常拼写错误,比如
T.abc = 10
写
T.abd = 10
ABC是T中的表变量,导致t.abc
分配不正确
一些更极端的情况,
在测试中未找到错误t.abd = 10
但发现产品发布
该工具是否支持此语法
答案 0 :(得分:0)
Lua-inspect应该能够根据动态评估检测未知的表字段:"识别未知的全局变量(白色红色)和表字段(红色),由静态和动态评估推断&# 34 ;. TypedLua也应该这样做,尽管它可能会在同一个脚本上生成比Lua-inspect更详细的输出。
答案 1 :(得分:0)
您可以使用metatable来拦截表访问。试试这个:
local function test(t,k)
if t[k]==nil then
error("invalid field "..k)
end
end
local function newtable(fields)
return setmetatable({},{
__index=function (t,k) test(fields,k) end,
__newindex=function (t,k,v) test(fields,k) rawset(t,k,v) end
})
end
T=newtable({ abc=true, xyz=true})
print(T.abc)
T.abc = 10
print(T.abc)
T.acb = 10
print(T.acb)