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

我在寻找一种方法来注释 Lua 中的变量类型和函数参数。有什么方法吗?还有没有类似 LINT 的工具来检查这些类型?

原文链接 https://stackoverflow.com/questions/6314740

点赞
stackoverflow用户312586
stackoverflow用户312586

我不喜欢在变量名上编码类型。我更喜欢给变量一个清晰明确的名称,以便他们的目的清晰明了。

如果需要更多的话,我在需要时使用类型检查函数:

function foo(array,callback,times)
  checkType(array,'table',
             callback,'function'times'number')
  -- foo函数的常规部分

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处理,并在类型意外时失败。

2011-06-11 09:37:15