Types 有没有一种流行的方法来记录Lua中变量和函数参数的类型?
我正在寻找一种方法来记录Lua中的类型变量和函数参数。有办法吗?还有任何类似LINT的工具来检查这些类型吗?我不喜欢在变量名上编码类型。我更喜欢给变量提供足够明确的名称,这样它们的意图就清楚了 如果我需要更多,我会在需要时使用类型检查功能:Types 有没有一种流行的方法来记录Lua中变量和函数参数的类型?,types,lua,lint,Types,Lua,Lint,我正在寻找一种方法来记录Lua中的类型变量和函数参数。有办法吗?还有任何类似LINT的工具来检查这些类型吗?我不喜欢在变量名上编码类型。我更喜欢给变量提供足够明确的名称,这样它们的意图就清楚了 如果我需要更多,我会在需要时使用类型检查功能: function foo(array, callback, times) checkType( array, 'table', callback, 'function', times, 'n
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操作,如果类型意外,测试将失败。我不喜欢在变量名上编码类型。我更喜欢给变量提供足够明确的名称,这样它们的意图就清楚了 如果我需要更多,我会在需要时使用类型检查功能:
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操作,如果类型意外,测试将失败。->代码文档部分,以及。不确定这些是否是您正在寻找的类型…->代码文档部分,以及。不确定这些是不是你要找的东西…谢谢你的回答。我意识到Lua中没有类型系统的概念:)谢谢你的回答。我意识到Lua中没有类型系统的概念:)