Typed kwargs in Julia

后端 未结 1 1370
长发绾君心
长发绾君心 2020-12-19 05:18

Is it possible to type function kwargs in Julia?

The following works for standard Varargs.

function int_args(args::Integer...)
    args
         


        
相关标签:
1条回答
  • 2020-12-19 06:04

    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.

    0 讨论(0)
提交回复
热议问题