Previously (v0.3), to collect optional arguments in a dictionary, I used:
Dict(zip(optargs...)...)
After 0.4 release, in response to this warning:
WARNING: Dict{K,V}(ks::Tuple{Vararg{K}},vs::Tuple{Vararg{V}}) is
deprecated, use Dict{K,V}(zip(ks,vs)) instead.
I started using
Dict{Symbol,Any}(zip(opta))
which was working in 0.4.1.
Today my Ubuntu updater pulled in 0.4.2, and the following error happens:
fopt(x::Float64; optargs...) = optargs
opta = fopt(2.0, z=true)
Dict{Symbol,Any}(zip(opta))
ERROR: BoundsError: attempt to access ((:z,true),)
at index [2]
in call at dict.jl:390
2 questions:
(1) What was the breaking change between 0.4.1. and 0.4.2?
(2) What is the recommended way to collect optional arguments inside a
function into an associative dictionary and then (after some exploration of
it) pass to another function?
Thanks!