0

Luaで型変数と関数の引数に注意する方法を見つけています。方法はありますか?そして、それらのタイプをチェックするためのLINTのようなツールはありますか?

4

1 に答える 1

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 を実行し、タイプが予期しない場合は失敗します。

于 2011-06-11T09:37:15.693 に答える