arrays in DMD V2

Jesse Phillips via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Apr 18 23:19:53 PDT 2014


On Saturday, 19 April 2014 at 03:51:02 UTC, steven kladitis wrote:
> import std.stdio;
>
>
> void main()
> {
>
> int    a0[];
> int    a1[][];
> string a2[][];
> string a3[][string];
> string a4[][string][string];
> //string a4[string][string][string]; is this the same as 
> above????
> int    a5[][string][string][string];
> int    a6[string][int][string][float];
> int    a7[int][int][string];
>
> // how do you initialize each array, what type are they 
> multidimensional???
> // how do you define all of the above with limits on each 
> dimension???
>
> a0  = [1,2,3];
> //writefln( a0 );
>
> a1  = [ [ 1,2,3 ],[4,5,6]];
> //writefln( a1 );
>
> a2  = [ ["a","b" ],[ "c","d" ] ];
>
> //writefln ( a2 );
>
> //a3  = [ ["a","b" ],[ "c","d" ] ];
> // does not work
>
> //a4    = [ ["a","b" ];
> // does not work.
>
> //a5      = [ [1,"a","b"]];
>
>   pragma(msg, typeof(a0));
>    pragma(msg, typeof(a1));
>     pragma(msg, typeof(a2));
>      pragma(msg, typeof(a3));
>       pragma(msg, typeof(a4));
>        pragma(msg, typeof(a5));
>         pragma(msg, typeof(a6));
>          pragma(msg, typeof(a7));
> //  does not work

Works for me.

a6 = int[float][string][int][string]
a7 = int[string][int][int]


> //a6        = [ 1,["a",1,"b",4.0]];
> // does not work

a6 = ["a": [1: ["b": [4.0: 5]]]];
writeln(a6["a"]);

>
> //a7 = [ 1,1,"a"];
> // does not work

a7 = [1: [2: ["3": 4]]];

> // also how would you do in a foreach?

foreach is for getting values out.

a0 ~= 7 // Append 7 to array
int[string] a8;
a8["hello"] = 6; // Add six to a8 for "hello"
assert(a8["hello"] == 6);



More information about the Digitalmars-d-learn mailing list