Структурная эквивалентность типов: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
Приведены все типы PascalABC.NET, имеющие структурную эквивалентность. | |||
В Delphi - для этих типов имеет место именная эквивалентность. | |||
<source lang="Delphi">var | |||
a: array of integer; | |||
a1: array of integer; | |||
s: set of real; | |||
s1: set of real; | |||
p: procedure (i: integer); | |||
p1: procedure (i: integer); | |||
r: ^integer; | |||
r1: ^integer; | |||
procedure proc(aa: array of integer; ss: set of real; pp: procedure (i: integer); rr: ^integer); | |||
begin | |||
end; | |||
begin | |||
a := a1; | |||
s := s1; | |||
p := p1; | |||
r := r1; // В Delphi ни одно из этих присваиваний не сработает | |||
proc(a,s,p,r); // Этот вызов - тоже | |||
end.</source> | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 10:32, 16 января 2010
Приведены все типы PascalABC.NET, имеющие структурную эквивалентность. В Delphi - для этих типов имеет место именная эквивалентность.
var
a: array of integer;
a1: array of integer;
s: set of real;
s1: set of real;
p: procedure (i: integer);
p1: procedure (i: integer);
r: ^integer;
r1: ^integer;
procedure proc(aa: array of integer; ss: set of real; pp: procedure (i: integer); rr: ^integer);
begin
end;
begin
a := a1;
s := s1;
p := p1;
r := r1; // В Delphi ни одно из этих присваиваний не сработает
proc(a,s,p,r); // Этот вызов - тоже
end.