IPB

> function (зарезервированное слово)
Форум
Загрузка...
 
Час быка
Час быка
Карта Интернета
Internet Map
Яндекс.Метрика

Язык:
Русский
English


Функция - это часть программы, которая вычисляет и возвращает значение.

Синтаксис

 function идентификатор : тип;

или

 function идентификатор (параметры) : тип;

Замечания

Заголовок функции определяет идентификатор функции, формальные параметры (если есть), и тип результата функции.

Допустимы порядковые, вещественные, строковые и указательные типы результата.

Функция вызывается при оценке выражения, использующего данную функцию.

Заголовок функции сопровождается:

 ■ Разделом описаний, в котором объявляются локальные объекты
 ■ Операторной частью, в которой находятся операторы, которые
   будут выполнены при вызове функции

Операторная часть должна содержать по крайней мере один оператор, который присваивает значение идентификатору функции. Результатом функции будет последнее присвоенное значение.

Вместо частей объявлений и операторной, объявление функции может содержать директивы forward, external, far или inline.

Пример

 (* Объявление функции *)
 function UpCaseStr(S : String) : String;
 var I : Integer;
 begin
   for I := 1 to Length(S) do
     if (S[I] >= 'a') and (S[I] <= 'Z') then
       Dec(S[I], 32);
   UpCaseStr := S;
 end;

Ада

 -- Объявление функции
 function Up_Case_Str (S : String) return String is
 begin
    return Res : String := S do
       for i in S'Range loop
          Res (i) := To_Upper (Res (i)); -- из пакета Ada.Characters.Handling
       end loop;
    end return;
 end Up_Case_Str;

Типу результата предшествует "return", а не двоеточие. На тип результата функции жёстких ограничений нет. Тип результата может быть недоопределённым, составным, ограниченным. Зато есть ограничение на режимы параметров. Параметры не могут быть доступны для записи (но могут быть указательного типа).

Возврат результата осуществляется с помощью оператора "return". "return" имеет две формы : простой и расширенный. Простой "return" - это "return выражение;", расширенный - это как на примере. Внутри блока return-do-end семантика результата аналогична Borland Pascal: результатом вызова функции становится последнее значение этой переменной. В Borland Pascal переменную результата нельзя читать, ей можно только присваивать, в языке Ада к переменной результата можно делать произвольные обращения.

В зависимости от того, последует за заголовком тело или нет, после заголовка пишется "is" или точка с запятой. Поэтому в языке Ада директива forward не нужна. Вместо директивы external в языке Ада используется pragma Import. Директива far специфична для DOS. Вместо inline есть полноценные ассемблерные шаблоны.

См. также

 
 К началу страницы 
Тэги: function
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 


-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"