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


Операции и вычисление выражения - часть 7


Операция катенации & предопределена для любого одномерного нелимитируемого индексируемого типа.

Знак

Операция

Тип левого

Тип правого

Тип результата

операции

операнда

операнда

+

сложение

Любой числовой ТИП

Тот же числовой ТИП

Тот же числовой ТИП

-

вычитание

Любой числовой ТИП

Тот же числовой ТИП

Тот же числовой ТИП

&

катенация

Любой индексируемый

ТИП

Тот же индексируемый

ТИП

Тот же индексируемый

ТИП

Любой индексируемый

ТИП

Тип компоненты

Тот же индексируемый

ТИП

Тип компоненты

Любой индексируемый

ТИП

Тот же индексируемый

ТИП

Тип компоненты

Тип компоненты

Любой индексируемый

ТИП

Для вещественных типов точность результата определяется типом операндов (см. 4.5.7).

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

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

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

Примеры:

Z + 0.1 -- Z должен иметь вещественный тип "А" & "BCD" -- катенация двух строковых литералов 'А' & "BCD" -- катенация символьного и строкового -- литералов 'А' & 'А' -- катенация двух символьных литералов




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



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