Режим "out"
В этом режиме, при входе в подпрограмму, формальный параметр не инициализируется (!!!) значением фактического параметра.
Согласно стандарта Ada95, внутри подпрограммы, формальный параметр, использующий этот режим, может быть использован как в левой, так и в правой части инструкций присваивания (другими словами: формальный параметр доступен как для чтения, так и для записи). Согласно стандарта Ada83, внутри подпрограммы, такой формальный параметр может быть использован только в левой части инструкций присваивания (другими словами: доступен только для записи).
При этом, после выхода из подпрограммы, значение фактического параметра заменяется на значение формального параметра.
procedure Demo(X : out Integer; Y : in Integer) is
-- при входе в подпрограмму X не инициализирован!!! begin X := Y; end Demo; |
Режим "out" разрешается использовать только в процедурах.