Delphi-XE7 представил новый синтаксис для инициализации dynamic array
.
// compile time const declaration of dynamic array
const
my_ConstArray_name: TArray<Integer> = [128, 38459, 438, 23674];
// compile time var declaration of dynamic array
var
my_VarArray_name: TArray<Integer> = [128, 38459, 438, 23674];
Назначение динамических массивов во время выполнения:
var
a : TArray<Integer>;
begin
a := [1,2,3];
К сожалению, этот синтаксис нельзя использовать в обычных статических массивах:
Type
TMyArray = array[0..3] of Integer;
const
cMyArray: TMyArray = [0,1,2,3]; // E2010 Incompatible types: 'TMyArray' and 'Set'
cMyArray: TMyArray = (0,1,2,3); // Works, as in all Delphi versions
var
MyArray: TMyArray;
begin
// This fails as well
MyArray := [0,1,2,3]; // E2010 Incompatible types: 'TMyArray' and 'Set'
MyArray := (0,1,2,3); // E2029 ')' expected but ',' found
//-----------^-------
// This works in all Delphi versions !
MyArray := cMyArray;