On Tuesday, 29 July 2014 at 20:06:28 UTC, Marc Schütz wrote:
   int[3] a = [1, 0, -1];
   int[] b = a;
   int[] c = new int[4];

   b[] = c[1..4];
   assert(a[2] == 0);

// This copies a slice of the slice c onto the slice b (which refers to a).

Playing the devil's advocate:

Yes, it does so by assigning a slice from `c` to a slice from `b`.

Let's try to explain why this:
    b = c[1..4];
changes what b refers to, while this:
    b[] = c[1..4];
copies.

Well, if you assign a slice to a slice, that means 'copy elements'. But if you assign a slice to <what b is>, that means change the reference.

Reply via email to