Формальные параметры

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

Параметры в подпрограмму могут передаваться как по ссылке, так и по значению. В случае если формальный параметр описан как параметр по ссылке, тогда фактический параметр должен являться переменной или полем объекта. Если формальный параметр описан как параметр по значению, тогда фактический параметр должен являться выражением. Описанию формального параметра по ссылке должно предшествовать ключевое слово VAR.

Аргумент, передаваемый в качестве значения параметра по ссылке должен иметь такой же тип, что и тип параметра. Аргумент, передаваемый в качестве значения параметра по значению должен иметь тип, который можно привести к типу параметра.

Формальные параметры являются локальными для процедуры (функции).

$ FormalParameters = [FPSection {";" FPSection}]

$ FPSection = [VAR] ( ident ":" FormalType ["="expression] | ident {"," Ident} ":" FormalType | PARAMARRAY ArraySection )

$ FormalType = ClassType

Формальный параметр, передаваемый по значению, может быть необязательным. Параметр считается необязательным, если для него определено значение по умолчанию. Все необязательные параметры должны обязательно следовать в конце списка параметров. Значение по умолчанию не может быть присвоено списку параметров. Для указания массива параметров используется зарезервированное слово PARAMARRAY. Действуют следующие правила:

Пример

Sub MyProc(a: Integer; Var b: String; c: String = "a");

Begin

//Набор операторов

End Sub MyProc;

Параметр «А» является обязательным и должен иметь целое значение. В качестве параметра «B» необходимо передавать какую-либо строковую переменную. Параметр «C» будет необязательным, по умолчанию в качестве его значения будет передаваться буква «а».

Sub MyProc1(a: Integer; Var b: String; Paramarray c: Array Of Double);

Begin

//Набор операторов

End Sub MyProc1;

Параметр «А» является обязательным и должен иметь целое значение. В качестве параметра «B» необходимо передавать какую-либо строковую переменную. Далее в процедуру может передаваться массив вещественных значений. Для работы с ними предназначен массив «С».

См. также:

Описание процедур и функций