14.4.2 Параметры-переменные

На верх  Назад  Вперёд

Параметры переменные объявляются следующим образом:


Параметр переменная

1405


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

Параметры-переменные (var) (как и параметры-константы (const)) могут быть и untyped (нетипизирована). В этом случае переменная не имеет типа, значит несовместима с другими типами. Тем не менее, здесь может быть использован оператор взятия адреса, в функцию может быть передан параметр, который сам untyped (нетипизированн). Если для присвоения используется untyped (нетипизированный) параметр или ему (параметру) должно быть присвоено значение, необходимо использовать приведение типов.

Переменная файлового типа должна быть передана как параметр-переменная.

Открытый массив тоже может быть передан как параметр-переменная. Для получения дополнительной информации об использовании открытых массивов смотрите раздел 14.4.5 Параметр- открытый массив.

Примечание:

Обратите внимание, что значения по умолчанию не поддерживаются для параметров-переменных. Это бессмысленно, так как теряется смысл возможность передать значение обратно.

Результат функции (Result) рассматривается внутри как параметр-переменная и может иметь ненулевое (или ненулевое) начальное значение. Это особенно важно для управляемых типов.