I think so, yeah. If you actually need to fill an array with pointers to
the same object, `repeat` or something along those lines is a more
descriptive name.
// T
On Friday, April 25, 2014 1:08:14 PM UTC+2, Ivar Nesje wrote:
>
> Thinking more about this.
>
> Would it be more useful for fill() and fill!() to take copies of mutable
> objects? I can't really see a use case for fill that fills an array with
> pointers to the same object.
>
> Ivar
>
> kl. 12:29:20 UTC+2 fredag 25. april 2014 skrev Ivar Nesje følgende:
>>
>> You can use a list comprehension, so that you actually create 16
>> dictionaries.
>>
>> my_array_of_dicts = [Dict() for i = 1:4 , y = 1:4]
>>
>> Ivar
>>
>> kl. 12:24:22 UTC+2 fredag 25. april 2014 skrev joanenric barcelo følgende:
>>>
>>> Hello!
>>> I want to create a multidimensional array of dicts, say 4x4. My first
>>> guess was to use the function fill()
>>> julia> my_array_of_dicts = fill(Dict(), 4, 4)
>>>
>>>
>>> I want to include a new element to one of the dicts, say in position
>>> 2,2. So
>>> julia> my_array_of_dicts[2,2]["somekey"] = ["somevalue"]
>>>
>>> but what I get is
>>>
>>> julia> my_array_of_dicts
>>> 4x4 Array{Dict{Any, Any}, 2}:
>>> {"somekey"=>"somevalue"} . {"somekey"=>"somevalue"}
>>> {"somekey"=>"somevalue"} . {"somekey"=>"somevalue"}
>>>
>>> {"somekey"=>"somevalue"} . {"somekey"=>"somevalue"}
>>>
>>> {"somekey"=>"somevalue"} . {"somekey"=>"somevalue"}
>>>
>>> so, basically the reference of every element of the array points to the
>>> same object and all of the positions of the matrix are modified. Is there
>>> any more suitable way to initialize a matrix of arrays without having this
>>> problem?
>>>
>>>
>>>
>>>
>>>
>>