Warum muß diese
Konstante denn ein dynamisches Array und kann nicht statisch sein? (OK, bei Zuweisung an ein dynamisch Array muß dann umkopiert werden)
Kann Delphi nicht auch inzwischen bei statischen Arrays die Länge selbst bestimmen?
const X: array[] of string = ('1', '2');
Zitat:
Delphi-Quellcode:
var
a1: array of String;
a2: TArray<String>;
Array of string definiert an dieser stelle einen neuen Typ und der ist dann mit dem anderen Array nicht zuweisungskompatibel (auch wenn die Typen intern ja eigentlich gleich sind-
Entsprechend dem obrigen Beispiel das, was der Compiler daraus macht:
Delphi-Quellcode:
type
T1: array of String;
T1: array of String;
var
a1: T1;
a2: T2;
Delphi-Quellcode:
type
Tx: array of String; // globaler Typ aus TArray<T>
var
a1: Tx;
a2: Tx;
Bei den Generics ala TArray<T> werden die gleichgeschriebenen Typen überall auch
gleich identisch verwendet, also mit dem selben Typen der ersten Deklaration.
Zitat:
Delphi-Quellcode:
type
TRec = record
const
MyArray: TArray<String> = ['First','Second','Third'];
end;
Bei Dem dachte ich zuerst an
Delphi-Quellcode:
const
Rec = record
MyArray: array[0..2] of string;
end = (MyArray: ('First','Second','Third'));