Отличия между процедурами и функциями

   
На этом шаге мы перечислим отличия процедур и функций.

   
Структура описания процедур и функций приведена в 16 шаге. Напомним формат заголовков процедур и функций:

    procedure <Имя> (<Список  Формальных  Параметров>) ; 
    function <Имя> (<Список Формальных Параметров>) :  <Тип результата>;

   
Объявление и работа с процедурами и функциями отличаются в следующем:

  • в заголовке функции помимо описания формальных параметров обязательно указывается тип возвращаемого ею результата;
  • для возврата функцией значения в точку вызова среди ее операторов должен быть хотя бы один, в котором имени функции или переменной Result присваивается значение результата;
  • вызов процедуры выполняется отдельным оператором;
  • вызов функции может выполняться там, где допускается ставить выражение, в частности, в правой части оператора присваивания.

   
Помимо указанных отличий между процедурами и функциями отметим еще особенности реализации функций в языке Object Pascal.

   
В Object Pascal функция может возвращать значения практически любых типов (стандартных и определяемых пользователем), за исключением файловых и объектных типов "старой" объектной модели, объявляемых с помощью зарезервированного слова object.

   
Для возврата результата функцией введена специальная переменная Result, которая представляет собой неявно объявляемую локальную переменную, имеющую такой же тип, как и возвращаемое функцией значение. Присваивание значения переменной Result эквивалентно присваиванию имени функции.
Однако, в отличие от идентификатора функции, если Result встречается в правой части оператора присваивания, то происходит не рекурсивный вызов функции, а обращение к текущему значению Result.

   
На следующем шаге мы рассмотрим виды параметров и способы их передачи.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий