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



              

Примечание 1



Примечание

VALUE := MAX_VALUE - 1; SHADE := BLUE;NEXT_FRAME(F)(M, N) := 2.5; --CM. 1 U := DOT_PRODUCT(V, W); -- CM. 6.5WRITER := (STATUS => OPEN, UNIT => PRINTER, LINE_COUNT => 60); -- CM. 3 NEXT_CAR.all := (72074, null); -- CM. 1

Примеры проверок ограничений:

I,J : INTEGER range 1 ..10; К : INTEGER range 1 ..20;I := J; --одинаковые диапазоны К := J; -- совместимые диапазоны J := К; -- при К<10 возбудится исключение CONSTRAINT_ERROR

Примечание. Значения дискриминантов объекта, указанного ссылочным значением, не могут быть изменены (даже присваиванием составного значения всему объекту), поскольку такие объекты, созданные генераторами, всегда являются ограниченными (см. 4.8); подкомпоненты таких объектов могут и не быть ограниченными.

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

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

Ссылки: вызов функции 6.4, выражение 4.4, вычисление 4.5, генератор 4.8, дискриминант 1, имя 4.1, исключение CONSTRAINT_ERROR 11.1, компонента 3.6, 3.7, массив 3.6, неявное преобразование типа 4.6, объект 3.2, отрезок 2, ошибочный 1.6, переменная 1, подкомпонента 3.3, подтип 3.3, преобразование подтипа 4.6, присваивание массива 1, совмещение 6.6, 8.7, ссылочный тип 3.8, тип 3.3, указывать 3.8, универсальный-вещественный тип 6, универсальный-целый тип 4, числовой литерал

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

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

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









Содержание  Назад  Вперед