fork download
  1. import std.stdio;
  2.  
  3. void main() {
  4.  
  5. auto a = [1, 2, 3];
  6. auto b = a.dup;
  7.  
  8. b[] *= 2;
  9. writeln("a = ", a); // [1, 2, 3] // OK
  10. writeln("b = ", b); // [2, 4, 6] // OK
  11.  
  12.  
  13. auto c = [[[1, 2, 3], [4, 5, 6, 7, 8]],
  14. [[9, 10], [11, 12, 13]]];
  15.  
  16. auto d = c.dup;
  17.  
  18. writeln("d[0][1][1 .. $ - 1] = ",
  19. d[0][1][1 .. $ - 1]);
  20.  
  21. d[0][1][1 .. $ - 1] *= 3;
  22.  
  23. writeln("c = ", c);
  24. // [[[1, 2, 3], [4, 15, 18, 21, 8]],
  25. // [[9, 10], [11, 12, 13]]] // wrong
  26. writeln("d = ", d);
  27. // [[[1, 2, 3], [4, 15, 18, 21, 8]],
  28. // [[9, 10], [11, 12, 13]]] // OK
  29. }
Success #stdin #stdout 0s 4124KB
stdin
Standard input is empty
stdout
a = [1, 2, 3]
b = [2, 4, 6]
d[0][1][1 .. $ - 1] = [5, 6, 7]
c = [[[1, 2, 3], [4, 15, 18, 21, 8]], [[9, 10], [11, 12, 13]]]
d = [[[1, 2, 3], [4, 15, 18, 21, 8]], [[9, 10], [11, 12, 13]]]