Режим "in out"
Режим "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" разрешается использовать только в процедурах.