我正在寻找一种方法来记录Lua中的类型变量和函数参数。有办法吗?还有任何类似LINT的工具来检查这些类型吗?
答案 0 :(得分:3)
我不喜欢变量名的编码类型。我更喜欢给变量提供足够明确的名称,以便明确其意图。
如果我需要更多,我需要时使用类型检查功能:
function foo(array, callback, times)
checkType( array, 'table',
callback, 'function',
times, 'number' )
-- regular body of the function foo here
end
函数checkType
可以像这样实现:
function checkType(...)
local args = {...}
local var, kind
for i=1, #args, 2 do
var = args[i]
kind = args[i+1]
assert(type(var) == kind, "Expected " .. tostring(var) .. " to be of type " .. tostring(kind))
end
end
这具有正确引发执行错误的优点。如果你有测试,你自己的测试将执行LINT-stuff,如果类型是意外的,则会失败。