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