On Sun, Sep 9, 2012 at 2:48 PM, Samuele Carcagno <sam.carca...@gmail.com> wrote:
> thanks a lot! both solutions work, to initialize the arrays of int I'm
> doing:
>
> int[][][string] foo;
> foo["key"] = new int[][](6,6);
> foo["key"][0][0] = 5;
>
> it seems to work.

Great!

Keep in mind all these structures (AA and dynamic arrays) are
reference types. If you copy the associative array, you just copy the
references and any change in one will affect the other. Also,
internally:

alias int[][][string] MyArray;

void main()
{
    MyArray foo;
    foo["abc"] = [[0,1,2], [3,4], []];
    assert(foo["abc"][0][1] == 1);

// internal copy
    foo["def"] = foo["abc"];
    foo["def"][0][1] = 2;
    assert(foo["abc"][0][1] == 2);

// external copy
    auto bar = foo;
    bar["ghi"] = foo["abc"];
    bar["ghi"][0][1] = 3;
    assert(foo["abc"][0][1] == 3 &&  foo["def"][0][1] == 3);

}

Reply via email to