Для любого типа можно объявить сколько угодно псевдонимов. Например:
type TMyInteger = Integer;
В дальнейшем псевдоним можно использовать так же, как и базовый тип:
var Mylnt: TMyInteger; begin Mylnt := 2*Round(pi); end;
Такого рода псевдонимы обычно используются для повышения наглядности кода программы. Однако в Object Pascal можно объявлять строго типизированные псевдонимы добавлением зарезервированного слова type перед именем базового типа:
type TMyIntegerType = type Integer; var MylntVar: TMyIntegerType;
С точки зрения компилятора, типизированные псевдонимы совместимы с базовым типом в различного рода выражениях, но фактически они объявляют новый тип данных, поэтому их нельзя использовать в качестве формальных параметров обращения к подпрограммам вместо базового типа. Если, например, объявлена процедура
function MylntFunc(APar: integer): Integer; begin end;
то такое обращение к ней
MylntFunc(MylntVar)
будет расценено компилятором как ошибочное.
Строго типизированные псевдонимы заставляют компилятор вырабатывать информацию о типе для этапа прогона программы (RTTI - Run-Time Type Information). Эта информация обычно используется средой Delphi для обеспечения функционирования разного рода редакторов свойств и программ-экспертов.
8 8 8
|