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


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


• Для заданной описанием объекта константы индексируемого типа границы определены начальным значением, если подтип константы не ограничен; иначе они определены подтипом (в последнем случае начальное значение — это результат неявного преобразования подтипа). То же правило применимо к формальному параметру настройки вида

in.

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

• Для формального параметра подпрограммы или входа границы получены от соответствующего фактического параметра. (Формальный параметр ограничен соответствующими зна- ' чениями границ.)

• Для описания переименования и для формального параметра настройки вида

in out

границы берутся у переименованного объекта или у соответствующего фактического параметра настройки.

Порядок вычисления дискретных диапазонов при предвыполнении ограничения индекса в языке не определен.

Примеры описания массивов, включающих ограничения индексов:

BOARD : MATRIX(1 .. 8, 1 .. 8); -- СМ. 3.6 RECTANGLE : MATRIX(1 .. 20, 1 .. 30); INVERSE : MATRIX(1 .. N, 1 .. N); -- N не обязательно статическое

FILTER : BIT_VECTOR(0 .. 31);

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

MY_SCHEDULE : SCHEDULE; — все массивы типа SCHEDULE! имеют одни и те же границы

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

type VARLINE(LENGTH : INTEGER) is

record

IMAGE : STRING(1 .. LENGTH); end record;

NULL_LINE : VAR_LINE(0); -- NULL_LINE.IMAGE пустой массив

Примечание.

Предвыполнение указания подтипа, состоящего из обозначения типа, за которым следует ограничение индекса, контролирует совместимость ограничения индекса с обозначением типа (см. 3.3.2).

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




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



Книжный магазин