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


Операторы присваивания - часть 2


универсальный-целый

или

универсальный-вещественный,

то производится неявное преобразование типа, описанное в разд. 4.6.

Определение типа переменной в левой части оператора присваивания может потребовать рассмотрения выражения, если имя переменной может интерпретироваться как имя переменной, указанной ссылочным значением, возвращаемым вызовом функции, а также как компонента или отрезок такой переменной (см. разд. 8.7 о контексте разрешения совмещения).

Ссылки:

вызов функции 6.4, выражение 4.4, вычисление 4.5, генератор 4.8, дискриминант 3.7.1, имя 4.1, исключение CONSTRAINT_ERROR 11.1, компонента 3.6, 3.7, массив 3.6, неявное преобразование типа 4.6, объект 3.2, отрезок 4.1.2, ошибочный 1.6, переменная 3.2.1, подкомпонента 3.3, подтип 3.3, преобразование подтипа 4.6, присваивание массива 5.2.1, совмещение 6.6, 8.7, ссылочный тип 3.8, тип 3.3, указывать 3.8, универсальный-вещественный тип 3.5.6, универсальный-целый тип 3.5.4, числовой литерал 2.4.

5.2.1. ПРИСВАИВАНИЯ МАССИВОВ

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

Это значит, что новое значение каждой компоненты индексируемой переменной задается сопоставляемой ей компонентой индексируемого значения, полученного при вычислении выражения (см. определение сопоставляемых компонент в 4.5.2). При преобразовании подтипа для каждой компоненты индексируемой переменной проверяется наличие сопоставляемой компоненты индексируемого значения, и наоборот. При отрицательном результате этой проверки возбуждается исключение CONSTRAINT_ERROR, а значение каждой компоненты переменной не изменяется.

Примеры:

А : STRING(1 .. 31); В : STRING(3 .. 33); ... А := B; — одинаковое количество компонент

А(1 .. 9) := "tar sauce"; А(4 .. 12) := A(1 .. 9); -- А(1 .. 12) = "tartar Sauce"




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



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