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


Агрегаты - часть 3


При нарушении проверки возбуждается исключение CONSTRAINT_ERROR.

Пример агрегата записи с позиционным сопоставлением:

(4, JULY, 1776) -- см. 3.7 Примеры агрегатов записи с именованными сопоставлениями:

(DAY => 4, MONTH => JULY, YEAR => 1776) (MONTH => JULY, DAY => 4, YEAR => 1776)

(DISK, CLOSED, TRACK => 5, CYLINDER => 12) -— см. 3.7.3 (UNIT => DISK, STATUS => CLOSED, CYLINDER => 9, TRACK => 1)

Примеры сопоставления компонент с несколькими выборами:

(VALUE => 0, SUCCIPRED => new CELL'IO, null, null)) —- см. 3.8.1

—- Генератор вычисляется дважды: SUCC и PRED обозначают разные ячейки

Примечание:

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

Ссылки:

агрегат 4.3, в некотором порядке 1.6, возбуждение исключения 11, выбор 3.7.3, выражение 4.4, вычисление 4.5, генератор 4.8, дискриминант 3.3, зависит от дискриминанта 3.7.1, именуемый тип 3.7, имя компоненты 3.7, исключение CONSTRAINT_ERROR 11.1, компонента записи 3.7, ограничение 3.3, подкомпонента 3.3, подтип 3.3.2, программа 10, раздел вариантов 3.7.3, раздел дискриминантов 3.7.1, сопоставление компонент 4.3, статическое выражение 4.9, тип 3.3, удовлетворять 3.3.

4.3.2. АГРЕГАТЫ МАССИВОВ

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

Если тип агрегата — многомерный индексируемый тип, то n-мерный агрегат записывается как одномерный, в котором выражения, задающие сопоставления компонент, сами записываются как (n - 1)-мерный агрегат, называемый

подагрегатом;

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




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