Новые возможности работы с динамическими массивами в Delphi XE7

Здравствуйте уважаемые коллеги!

В версии XE7 при работе с массивами появились следующие возможности:
— Инициализировать динамический массив при помощи константы
— Объединять массивы при помощи оператора «+»
— Использовать методы Insert, Delete, и Concat для динамических массивов

Давайте посмотрим несколько примеров использования новых возможностей…

Инициализация.
Раньше приходилось писать следующие конструкции для создания динамического массива:

var
  dynArray: array of integer;
begin
  SetLength(dynArray, 3);
  dynArray[0] := 1;
  dynArray[1] := 2;
  dynArray[3] := 3;
  ...
end;

Где SetLength(dynArray, 3) — Задать длину массива равной 3.

Теперь можно сделать намного проще:

var
  dynArray: array of integer;
begin
  dynArray := [1,2,3];
  ...
end;

Намного удобнее, не правда ли?

Объединение массивов при помощи оператора «+» выглядит следующим образом:

var
  dynArray: array of integer;
  da: array of integer;
begin
  dynArray := [1,2,3];
  da := [4,5,6];
  dynArray := dynArray + da;
  ...
end;

После этой манипуляции массив dynArray будет включать в себя элементы обоих массивов: [1,2,3,4,5,6].

Методы Insert, Delete и Concat:

var
  dynArray: array of integer;  
begin
  dynArray := [1,2,3];
  Insert([6,7], dynArray, 2); // = [1,6,7,2,3]
  Delete(dynArray, 3, 1); // = [1,6,7,3]
  dynArray := Concat([9,8], [4,2], dynArray); // = [9, 8, 4, 2, 1, 6, 7, 3]
  ...
end;

Данные возможности работают не только с массивами простых типов. Вы можете использовать любой тип. Например, массив форм TForm:

var
  Forms: array of TForm;
  Fm: TForm;
begin
  Forms := [Form1, Form2, Form3];
  Forms := Forms + [TForm.Create(Application)];
  for Fm in Forms do
	Fm.Caption := Fm.Caption + ' !!! ';
end;

Обратите внимание на конструкцию for — in, которая предоставляет доступ к каждому элементу массива в цикле.

Нововведения действительно интересные и полезные. И позволят сильно облегчить работу с динамическими массивами.

Я надеюсь, что эта информация будет полезной для вас.
Если у вас появятся вопросы по данной теме, пишите их в комментариях или мне на почту:info@asd-soft.ru

Статья добавлена в Delphi. Добавить ссылку в закладки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *