Simon/Mauro:  thank you!

On Tuesday, March 31, 2015 at 3:35:16 PM UTC-4, Simon Kornblith wrote:
>
> julia> foo(;d...)
> 2-element Array{Any,1}:
>  (:a,97)
>  (:b,95)
>
> Note the semicolon. Otherwise the Dict is splatted as positional arguments.
>
> Simon
>
> On Tuesday, March 31, 2015 at 3:29:47 PM UTC-4, Michael Turok wrote:
>>
>> Is there a way to pass in a dictionary for the keyword arguments that 
>> have a varargs specification, much like python?
>>
>> Note that this works in julia for passing in arrays/tuples for the 
>> non-keyword arguments.
>>
>> *julia> foo(;kwargs...) = return kwargs*
>> *foo (generic function with 1 method)*
>>
>> *julia> foo(x=1,y=2)*
>> *2-element Array{Any,1}:*
>> * (:x,1)*
>> * (:y,2)*
>>
>> *julia> d = { :a=> 97, :b => 95 }*
>> *Dict{Any,Any} with 2 entries:*
>> *  :b => 95*
>> *  :a => 97*
>>
>> *julia> foo(d...)*
>> *ERROR: `foo` has no method matching foo(::(Symbol,Int64), 
>> ::(Symbol,Int64))*
>>
>> Python example: 
>>  
>>
>> >>> def foo(**kwargs):  return kwargs
>> ... 
>> >>> foo(x=1,y=2)
>> {'y': 2, 'x': 1}
>> >>> dict = { "a" : 97, "b" : 95 }
>> >>> foo(**dict)
>> {'a': 97, 'b': 95}
>> >>> 
>>
>>

Reply via email to