是否有一种流行的方式来记录Lua中变量和函数参数的类型?

时间:2011-06-11 07:35:44

标签: types lua lint

我正在寻找一种方法来记录Lua中的类型变量和函数参数。有办法吗?还有任何类似LINT的工具来检查这些类型吗?

1 个答案:

答案 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,如果类型是意外的,则会失败。