Was ich mir aber mal wünschen würde, wäre ein Copy-On-Write bei den dyn. Arrays, so wie man es von Strings kennt ... also daß man das endlich, nach vielen Jahrzehnten, langsam mal repariert.
Delphi-Quellcode:
var
A, B: TArray<Integer>;
A := [1, 2, 3];
B := A;
A[0] := 4;
ShowMessage(B[0].ToString);
bzw.
Delphi-Quellcode:
var
A, B: TArray<Char>;
C, D: string;
A := ['1', '2', '3'];
B := A;
A[0] := '4';
C := '123';
D := C;
C[Low(string)] := '4'; // aka C[1] bei Nicht-ARC
ShowMessage(B[0] + ' <> ' + D[Low(string)]);