Типы совместимые с Динамическими массивами

На верх  Назад  Вперёд

Object Pascal является строго типизированным языком. Два формально разных типа иногда рассматриваются как совместимые (то есть значение одного типа может быть присвоено переменной другого типа) это возможно при определенных обстоятельствах. Динамические массивы совместимы по присваиванию, если они используют один и тот же тип элемента (массива). Это означает, что следующий код будет скомпилирован:

{$mode objfpc}

Type

TA = Array of Integer;

TB = Array of Integer;

 

Var

A : TA;

B : TB;

begin

SetLength(A,1);

A[0]:=1;

B:=A;

end.

Но следующий код не будет, не смотря на то, что типы Integer и Word совместимы присваивания:

{$mode objfpc}

Type

TA = Array of Word;

TB = Array of Integer;

 

Var

A : TA;

B : TB;

begin

SetLength(A,1);

A[0]:=1;

B:=A;

end.