On 01/29/2011 01:01 AM, bearophile wrote:
Built-in AAs are currently broken and in need to be fixed:

import std.stdio: writeln;
void foo(int[int] aa, int n) {
     aa[n] = n;
}
void main() {
     int[int] a;
     foo(a, 0);
     writeln(a);
     a[1] = 1;
     foo(a, 2);
     writeln(a);
}

Bye,
bearophile

Variation on the theme:

void foo(int[int] aa, int n) {
    aa[n] = n;
}
void foo(int[] a, int n) {
    a ~= n;
}
void bar(ref int[int] aa, int n) {
    aa[n] = n;
}
void bar(ref int[] a, int n) {
    a ~= n;
}

unittest {
    int[int] aa;
    foo(aa, 3);
    writeln(aa.length);

    int[] a;
    foo(a, 3);
    writeln(a.length);

    int[int] bb;
    bar(bb, 3);
    writeln(bb.length);

    int[] b;
    bar(b, 3);
    writeln(b.length);
}

Denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to