Ада-95. Компилятор GNAT

       

Режим "in out"


Этот режим непосредственно соответствует параметрам передаваемым по ссылке (подобно var-параметрам языка Паскаль).

Таким образом, при входе в подпрограмму, формальный параметр инициализируется значением фактического параметра.

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

При этом, если формальному параметру внутри подпрограммы произведено присваивание нового значения, то после выхода из подпрограммы значение фактического параметра заменяется на новое значение формального параметра.

procedure Demo(X : in out Integer; Y : in Integer) is

Z : constant Integer := X;

begin

X := Y * Z; -- это допустимо! end Demo;

Режим "in out" разрешается использовать только в процедурах.



Содержание раздела