Is it possible to type function kwargs in Julia?
The following works for standard Vararg
s.
function int_args(args::Integer...)
args
Normal keyword arguments can have types, as in function f(x; a::Int=0)
, but this doesn't work for "rest" keyword arguments. Also note that since we currently don't dispatch on keyword arguments, the a::Int
in this case is a type assertion and not a dispatch specification.
It looks like this case is not handled well, and needs a better error message at least. I'd encourage you to file an issue at https://github.com/JuliaLang/julia/issues.
I'm not sure what the syntax x::T...
should mean for keyword arguments. In the case of varargs, it's clear that each element of x
should have type T
, but for rest keyword arguments each element is actually a symbol-value pair. Of course we could give it the meaning you describe (all values have type T
), but this doesn't seem to come up very often. Keyword arguments tend to be quite heterogeneous, unlike varargs which are more like lists or arrays.