Руководство разработчика

Ключевое слово ТИП


1. Объявление объектного типа.

Для объявления объектных типов ключевое слово ТИП используется вне объявления типа и тела функции или метода.

Синтаксис:

ТИП <имя типа> [( [ <имя родительского типа> ] [,] [<список базовых интерфейсов>])]
[
  <объявления полей и методов>
]

В круглых скобках после имени типа могут указываться имена базовых типов, разделенные запятыми. Порядок имен базовых типов значения не играет. В списке базовых типов допускается указание не более одного объектного типа, который называется родительским типом. В списке может указываться произвольное количество имен интерфейсов без явных повторений. Объектный тип должен при этом реализовывать все методы всех своих базовых интерфейсов.

Пример:

ТИП МойДиалог(ДИАЛОГ) // родительский тип
[
   КНОПКА: кнопка1;            // объявление поля 
   ФУНКЦИЯ ЛОГИКА: Проверка;   // объявление метода
]

2. Объявление синонима типа.

Для объявления синонима типа ключевое слово ТИП используется совместно со знаком "равно" вне объявления типа и тела функции или метода.

Синтаксис:

Объявление альтернативного имени типа:

ТИП <имя типа> = <другое имя типа>;

Задание имени для контейнерного типа:

ТИП <имя типа> = ИНДЕКС <тип элемента>: @[<список типов индексов>];

Задание имени для типа функции:

ТИП <имя типа> = ФУНКЦИЯ [<тип результата>:] @[<список параметров>];

Точка с запятой после объявления синонима обязательна.

Пример:

ТИП ТКодОшибки = ЦЕЛОЕ;
ТИП ТипСловарь = ИНДЕКС СТРОКА: @[СТРОКА, ЦЕЛОЕ];
ТИП ТипОбработки = ФУНКЦИЯ ТКодОшибки: @(ПЕРЕМ ТипСловарь: словарь);

3. Явное использование типа.

Для явного использования типа совместно применяются ключевые слова ИСПОЛЬЗОВАТЬ и ТИП вне объявления типа и тела функции или метода.

Синтаксис:

ИСПОЛЬЗОВАТЬ ТИП <список имен типов>;

Имена в списке разделяются запятой. Точка с запятой после списка имен обязательна.

Пример:

ИСПОЛЬЗОВАТЬ ТИП ПрихНакл, РасхНакл;

4. Сравнение типов.

Для сравнения типов и проверки принадлежности иерархии ключевое слово ТИП используется в выражениях.

Синтаксис:

Сравнение на равенство типов:

<имя типа1> = <имя типа2>
ТИП(<выражение1>) = ТИП(<выражение2>)
ТИП(<выражение>) = <имя типа>
<имя типа> = ТИП(<выражение>)

Сравнение на неравенство типов:

<имя типа1> <> <имя типа2>
ТИП(<выражение1>) <> ТИП(<выражение2>)
ТИП(<выражение>) <> <имя типа>
<имя типа> <> ТИП(<выражение>)

Проверка принадлежности иерархии:

<имя типа1> РОДИТЕЛЬ <имя типа2>
<имя типа1> НЕ РОДИТЕЛЬ <имя типа2>

ТИП ( <выражение> ) РОДИТЕЛЬ <имя типа>
<имя типа> РОДИТЕЛЬ ТИП ( <выражение> )

ТИП ( <выражение> ) НЕ РОДИТЕЛЬ <имя типа>
<имя типа> НЕ РОДИТЕЛЬ ТИП ( <выражение> )

ТИП ( <выражение1> ) РОДИТЕЛЬ ТИП ( <выражение2> )
ТИП ( <выражение1> ) НЕ РОДИТЕЛЬ ТИП ( <выражение2> ) 

Результатом сравнения типов является значение логического типа.

Пример:

ФУНКЦИЯ ОбработатьСсылку(ПЕРЕМ ССЫЛКА: ссылка);

ФУНКЦИЯ ОбработкаСсылок(ПЕРЕМ АЛГ_МАССИВ: массив)
  ЦИКЛ ИНДЕКС (знач = массив.парам[*])
     ЕСЛИ ТИП(знач) = ССЫЛКА ТО // пропускаем элементы массива, которые не ссылки
       ОбработатьСсылку(знач)
     КОНЕЦ_ЕСЛИ
  КОНЕЦ_ЦИКЛА
КОНЕЦ_ФУНКЦИИ

5. Проверка возможности изменения типа переменной.

При проверке переменной на возможность изменения типа ключевое слово ТИП используется в выражениях в паре с ключевым словом ЛЮБОЙ.

Синтаксис:

ЛЮБОЙ ТИП(<переменная>)

Результатом проверки является значение логического типа.


См. также: