Section courante

A propos

Section administrative du site

FUNCTION

Fonction
Delphi/Kylix/Lazarus

Syntaxe

Function identf:typef; corps de la fonction;
Function identf(param):typef; corps de la fonction;
Type identf=Function(param):typef;
Type identf=Function(param):typef of object;

Paramètres

Nom Description
identf Ce paramètre permet d'indiquer l'identificateur de la fonction
param Ce paramètre permet d'indiquer les paramètres de la fonction
typef Ce paramètre permet d'indiquer le type de données de la fonction
corps de la fonction Ce paramètre permet d'indiquer le corps de la fonction

Description

Ce mot réservé permet de définir une fonction utilisateur. Une fonction est un sous-programme renvoyant une valeur. Dans la première syntaxe, la définition d'une fonction renvoi simplement un type de données et une seule valeur peut être renvoyée par une fonction. Dans la deuxième syntaxe, la définition d'une fonction à laquelle sont transmis un ou plusieurs paramètres et retourne un type de données et une seule valeur peut être renvoyée par une fonction. Cependant, l'utilisation du mot réservé OUT ou VAR avant un paramètre permet au paramètre d'être traité comme une variable contenant des valeurs de retour. Dans la troisième syntaxe, la définition d'une fonction est un type de données et il permet à la fonction d'être transmise en tant que paramètre et utilisée en tant que variable. La définition du type définit uniquement le profil de la fonction et non le nom. Le nom d'une fonction de ce profil peut être attribué à une variable de ce type. Lorsqu'il est attribué, le nom de la variable peut être traité comme s'il s'agissait d'un nom de fonction. Dans la quatrième syntaxe, la définition d'une fonction permet de faire référence à une méthode d'objet. L'accès à une variable de ce type se comporterait alors comme si vous appeliez directement la méthode d'objet.

Dans la section d'INTERFACE d'une unité (UNIT), seul l'entête de la fonction (son nom, ses paramètres, le type de retour et les directives, mais pas le corps) peut apparaître. Vous pouvez également définir un type fonctionnel. Dans la section d'implémentation (IMPLEMENTATION), vous devez fournir une définition de fonction complète pour chaque fonction déclarée dans la section INTERFACE (voir la directive EXTERNAL pour savoir comment définir une fonction sans fournir de corps). Vous pouvez omettre les paramètres de la section IMPLEMENTATION si la fonction n'est pas surchargée. Si vous fournissez les paramètres, ils doivent correspondre exactement (y compris les noms des paramètres) à l'entête de la fonction dans la section INTERFACE. L'implémentation d'une fonction ne doit pas répéter les directives apparaissant en premier avec l'entête de la fonction.

Remarques

Exemple

Voici un exemple permettant d'afficher le logarithme inférieurs à 2 en utilisant le mot réservé «FUNCTION» :

  1. Program FunctionSamples;
  2.  
  3. {$APPTYPE CONSOLE}
  4. Uses SysUtils;
  5.    
  6. Function Log(X:Real):Real;Begin
  7.  Log := Ln(X);
  8. End;
  9.      
  10. Var I:Real;
  11.      
  12. BEGIN
  13.  I := 0.1;
  14.  While I <= 2.0 do Begin
  15.   WriteLn('LOG(',I:1:6,')=',Log(I):1:6);
  16.   I := I + 0.1;
  17.  End;
  18. END.

on obtiendra le résultat suivant :

LOG(0.100000)=-2.302585
LOG(0.200000)=-1.609438
LOG(0.300000)=-1.203973
LOG(0.400000)=-0.916291
LOG(0.500000)=-0.693147
LOG(0.600000)=-0.510826
LOG(0.700000)=-0.356675
LOG(0.800000)=-0.223143
LOG(0.900000)=-0.105360
LOG(1.000000)=0.000000
LOG(1.100000)=0.095310
LOG(1.200000)=0.182322
LOG(1.300000)=0.262364
LOG(1.400000)=0.336472
LOG(1.500000)=0.405465
LOG(1.600000)=0.470004
LOG(1.700000)=0.530628
LOG(1.800000)=0.587787
LOG(1.900000)=0.641854

Voir également

Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Abstract
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Const
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Dynamic
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Out
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Override
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Procedure
Langage de programmation - Delphi/Kylix/Lazarus - Référence des variables - Result
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Var
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Virtual

Dernière mise à jour : Mercredi, le 18 février 2015