Параметры и аргументы в Delphi
Параметры (формальные параметры) являются элементами подпрограммы и используются при описании производимых в ней действий. Аргументы (фактические параметры) указываются при вызове подпрограммы и замещают параметры при выполнении подпрограммы. Параметры могут иметь любой тип, включая структурированный.
Существует несколько видов параметров:
- значение;
- константа;
- переменная;
- нетипизированные константа и переменная.
Параметры, перед которыми в заголовке подпрограммы отсутствуют слова var или const и за которыми следует их тип, называются параметрами-значениями. Например, в следующем описании а и g являются параметрами-значениями:
- procedure P1(a: real; g: integer);
Параметр-значение обрабатывается как локальная по отношению к подпрограмме переменная. В подпрограмме значения таких параметров можно изменять, однако эти изменения не влияют на значения соответствующих им аргументов, которые при вызове подпрограммы были подставлены вместо формальных параметров.
Параметры, перед которыми в заголовке подпрограммы стоит слово const и за которыми следует их тип, называются параметрами-константами. Например:
- procedure Р2(const х, у: integer);
х и у являются параметрами-константами. В теле подпрограммы значение параметра-константы изменить нельзя. Параметрами-константами можно оформить те параметры, изменение которых в подпрограмме нежелательно и должно быть запрещено. Кроме того, для параметров-констант строковых и структурных типов компилятор создает более эффективный код.
Параметры, перед которыми в заголовке подпрограммы стоит слово var и за которыми следует их тип, называются параметрами-переменными. Например, в следующем описании d и f являются параметрами-переменными:
- function F1(var d, f: real; q17: integer): real;
Параметр-переменная используется в случаях, когда значение должно быть передано из подпрограммы в вызывающий блок. В этом случае при вызове подпрограммы параметр замещается аргументом-переменной, и любые изменения формального параметра отражаются на аргументе. Таким способом можно вернуть результаты из подпрограммы по окончании ее работы.
Для параметров-констант и параметров-переменных допускается не указывать их тип, т. е. считать их нетипизированными. В этом случае подставляемые на их место аргументы могут быть любого типа, и программист должен самостоятельно интерпретировать типы параметров в теле подпрограммы. Примером задания нетипизированных параметров-констант и параметров-переменных является следующее описание:
- function F2 (var a1; const t2): integer;
Группы параметров в описании подпрограммы разделяются точкой с запятой.
3 комментария к “Параметры и аргументы в Delphi”
Извените, что пишу не по теме, но я добавил ваш сайт к себе в RSS-Reader, но новые записи, почемуто, не отображаются =(
Это я делаю что то не так или у вас глючит rss фид?
Доброе время суток =) Все работает, не переживайте!
Хороший сайт, отличный материал. Обновляйте почаще.