Другим обходным решением является создание функции с аргументами с переменным ключевым словом и оставление любых требований над ожидаемыми входными данными в качестве утверждений внутри кода.Например,
function f( ; kwargs... )
V = Dict( kwargs )
try; assert( haskey( V, :a ) ); assert( haskey( V, :b ) )
catch e; throw( AssertionError("KWargs need to be a and b") )
end
V[:a] + V[:b]
end
f(a=1, b=2) #> 3
f(a=1, c=2) #> ERROR: AssertionError: KWargs need to be a and b
Или даже просто:
function f( ; kwargs... )
V = Dict( kwargs )
a = V[:a]
b = V[:b]
a + b
end
f(a=1, c=2) #> ERROR: KeyError: key :b not found
Отказ от ответственности: я не рекомендую это, я просто говорю, что это еще один обходной путь, который следует учитывать в зависимости от того, какие функции у вас естьв виду.