14.4.3 Выходные (Out) параметры |
Вверх Предыдущий Следующий |
Out параметры (выходные параметры) объявляются следующим образом: Out параметры Out параметр предназначен что-бы передавать значения обратно в вызывающий блок: значение передается по ссылке. Начальное значение параметра отбрасывается, и не могут использоваться. Если переменная нужна для передачи данных в функцию и получения их из функции, то необходимо использовать параметр-переменную. Если нужно только извлечь значение может быть использован out-параметр. Само собой разумеется, значения по умолчанию не поддерживаются для out-параметров. Отличие out параметров от параметров переданных по ссылке (var и const) очень мала (про управляемые типы смотри ниже): out параметр дает информацию о том, что будет с аргументами при вызове процедуры: она знает, что переменная не должна быть инициализированы перед вызовом. Следующий пример иллюстрирует это: Procedure DoA(Var A : Integer); begin A:=2; Writeln('A содержит ',A); end;
Procedure DoB(Out B : Integer); begin B:=2; Writeln('B содержит',B); end;
Var C,D : Integer; begin DoA(C); DoB(D); end. Процедуры DoA и DoB делают одно и то же. Но объявление DoB дает больше информации для компилятора, что позволяет ему обнаружить, что D не должна быть инициализирована до вызова. В то время как параметр А в DoA может принимать и возвращать значения, компилятор замечает, что C не инициализирована до вызова процедуры DoA. home: >fpc -S2 -vwhn testo.pp Таким образом лучше использовать out параметры, когда нужно только вернуть значения.
|