Параметры функций, процедур

Дата публикации

Недавно мы разобрались, как работать с функциями и процедурами. Сегодня же я бы хотел более подробно поговорить о параметрах.

Типы параметров процедуры и функции Delphi.

В процедуры можно передать следующие типы параметров:

  1. Значения
  2. Константы
  3. Переменные
  4. Выходные параметры

Параметр - значение

Передача значения, как параметр функции, наверное, самый распространенный случай. Тут все просто: в скобках мы просто указываем значение. Можем указать собственно значение, как в первом примере, или же переменную, как во втором.
Пример передачи параметра по значению:

ShowMessage('Привет всем');
//или
ShowMessage(s) // где s ранее определенная <a href="/studentam/delphi/102-stroki-delphi">строка</a>

Параметр – константа

Параметр передается в функцию как константа. Это значит, что это значение нельзя изменять, при определении функции необходимо использовать ключевое слово const.
Пример определения функции с параметром в виде константы

function MyF(const i:integer):integer;

Ещё раз хочу обратить Ваше внимание на то, что константа ни в коем случае не должна меняться в теле процедуры.

Параметр – переменные

Если мы хотим изменить какую-либо переменную в ходе выполнения процедуры/функции Delphi, то нам нужно в объявлении, перед именем добавить ключевое слово var. Приведу пример:

function MyF(var i:integer):integer;
begin
    i:=i+1; 
end;

procedure pr();
var
    x:integer;
begin 
    x:=0;
    ShowMessage(IntToStr(x)); // выведет 0
    MyF(x); // В результате работы функции переменная х увеличится на 1
    ShowMessage(IntToStr(x));// выведет 0
end;


Смотрите. Мы описали первую функцию MyF и, изменяя в её теле переменную i, мы будем изменять переменную, которую передали как параметр. Такой способ передачи параметра называется передачей параметра по ссылке. Сейчас все станет ясно. Для этого разберем процедуру pr. Мы задаем переменной x значение ноль, выводим его, чтобы убедиться в этом. Далее мы эту переменную передаем в функцию MyF, где в результате наш x увеличивается на единицу. Это произошло именно благодаря тому, что параметр функции MyF объявлен с ключевым словом var.

Выходные параметры

В Delphi есть тип параметра функции, который используется только для вывода значения. Объявляется такой тип при помощи директивы Out. Данная директива может использоваться только в функциях. Использование выходных параметров очень напоминает использование var, разница в том, что значение не может быть изменено подпрограммой. Выходное значение в Delphi используется для возврата дополнительных переменных из функции. Нужно это тогда, когда одной переменной Result не обойтись.

Добавить комментарий



Обновить

Thursday the 14th. icq 486350790
Copyright 2012

©