Pascal ABC Язык Pascal ABC
Эквивалентность типов
В Pascal ABC два типа считаются эквивалентными (равными), если совпадают их описания. Например, после описаний
type Arr=array
[1..100] of integer;
var
a: Arr;
b: array [1..100] of integer;
можно присваивать массивы друг другу:
a:=b;
В типах записей, помимо типов полей, должны совпадать имена:
type
rec1 = record i,j: integer end;
rec2 = record x,y: integer end;
...
var r1: rec1; r2: rec2;
...
r1:=r2; // ошибка!
В типах формальных параметров процедур и функций имена могут не совпадать:
type
proc1 = procedure (i: integer);
proc2 = procedure (x: integer);
...
var p1: proc1; p2: proc2;
...
p1:=p2; // все в порядке
Подобная расширенная трактовка эквивалентности (по сравнению с Borland Pascal и Borland Delphi) позволяет передавать параметры составного типа (массивы, записи, процедурный и указательный) в процедуры и функции, не определяя для этих параметров новый тип:
procedure foreach(var
a: array [1..100] of real; n: integer; f: function(r:
real): real);
var i: integer;
begin
for i:=1 to n do
a[i]:=f(a[i]);
end;
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.