On Sunday, 9 August 2015 at 15:37:23 UTC, Binarydepth wrote:
So I should use the REF like this ?

import std.stdio : writeln;
void main()     {
        immutable a=5;
        int[a] Arr;
        foreach(num; 0..a)      {
                Arr[num] = num;
        }
        foreach(num, ref ele; Arr)      {
                writeln(Arr[ele]+1);//Using the REF
        }
}

The reference v is to the array member in this case, rather than making a copy. In the last loop c is a copy. No big deal for this case of int Arr members, but if Arr was made up of struct members, you might not want to be making copies.

The i+3 initialization is just so you can see that v is the Arr member (not the index) in the other loops.

import std.stdio : writeln;
void main()     {
        immutable a=5;
        int[a] Arr;
        foreach(i, ref v; Arr)      {
                v = i+3;
        }
        foreach( ref v; Arr)      {
                writeln(v);
        }
        foreach( c; Arr)      {
                writeln(c);
        }
}

Reply via email to