Справочное руководство по языку Ада-83


Индексируемые типы - часть 2


Составной ограничитель < > (бокс) в определении подтипа индекса помещается для неопределенного диапазона (различные объекты данного типа не обязательно имеют одни и те же границы). Предвыполнение определения неограниченного индексируемого типа создает индексируемый тип: оно включает Предвыполнение указания подтипа компонент.

Определение ограниченного индексируемого типа определяет индексируемый тип и подтип этого типа:

&#x2022; Индексируемый тип &#x2014; это неявно описанный анонимный тип, этот тип определен (неявно) определением неограниченного индексируемого типа, в котором указание подтипа компонент берется из определения ограниченного индексируемого типа и обозначение типа каждого определения подтипа индекса определяется соответствующим дискретным диапазоном.

&#x2022; Индексируемый подтип &#x2014; это подтип, полученный наложением ограничения индекса на индексируемый тип.

Если определение ограниченного индексируемого типа дано для описания типа, то простое имя, введенное этим описанием, обозначает индексируемый подтип.

Предвыполнение определения ограниченного индексируемого типа создает соответствующий индексируемый тип и индексируемый подтип. При этом предвыполняются ограничение индекса и указание подтипа компонент. Вычисление каждого дискретного диапазона ограничения индекса и Предвыполнение указания подтипа компонент осуществляются в порядке, не определяемом языком.

Примеры описаний типа с определениями неограниченного индексируемого типа:

type

VECTOR

is array

(INTEGER

range

<>)

of

REAL;

type

MATRIX

is array

(INTEGER

range

<>, INTEGER

range

<>)

of

REAL;

type

BIT_VECTOR

is array

(INTEGER

range

<>)

of

BOOLEAN;

type

ROMAN

is array

(POSITIVE

range

0)

of

ROMAN_DIGIT:

Примеры описаний типа с определениями ограниченного индексируемого типа:

type

TABLE

is array

(1 .. 10)

of

INTEGER;

type SCHEDULE is array

(DAY)

of BOOLEAN;

type

LINE

is array




Начало  Назад  Вперед