Als "Typ"-Deklaration das
Gleiche, denn
Zitat:
Delphi-Quellcode:
type
TArray<T> = array of T;
Aber generische Typen werden global "identisch" behandelt,
während es nicht-generisch nur "gleich/ähnlich", aber nicht kompatibel ist.
Delphi-Quellcode:
type
A = array of Integer;
B = array of Integer;
C = TArray<Integer>;
D = TArray<Integer>;
A und B sehen gleich aus, sind allerdings nur gleich aber
nicht zuweisungs-kompatibel, da jeweils eigene TypeInfo/
RTTI.
Ebenso A/B und C.
C und D sind aber identische Alias des selben generischen Types.
Delphi-Quellcode:
a := b; // geht nicht
a := c; // geht nicht
c := d; // geht
Und als Parameter, ist array-of ein
Open-Array, also was
ganz Anderes, zu dem aber
ALLE anderen Array-Typen und Array-Konstanten zuweisungskompatibel sind.
https://docwiki.embarcadero.com/RADS...en/Open_Arrays
Delphi-Quellcode:
//type X = array[0..666] of Integer;
//procedure Test(arr: array of Integer);
// geht alles
Test(a);
Test(c);
Test([1, 2, 3]);
Test(x);