FUNCTION |
Fonction |
---|---|
Clipper |
Syntaxe
FUNCTION name commands RETURN (value) |
[STATIC] FUNCTION name[(idParamlist)] [LOCAL identifier [[:= initializer], ... ]] [STATIC identifier [[:= initializer], ... ]] [FIELD identifierlist [IN idAlias]] [MEMVAR identifierlist] . . commands . RETURN exp |
Paramètres
Nom | Description |
---|---|
commands | Ce paramètre permet d'indiquer la liste des commandes à inclure dans la fonction. |
idParamlist | Ce paramètre permet d'indiquer la déclaration d'une ou plusieurs variables de paramètres. Les variables spécifiées dans cette liste sont déclarées locales. |
name | Ce paramètre permet d'indiquer le nom de la fonction définie par l'utilisateur à déclarer. Les noms de fonction définis par l'utilisateur peuvent avoir n'importe quelle longueur, mais seuls les 10 premiers caractères sont significatifs. Les noms peuvent contenir n'importe quelle combinaison de caractères, de nombres ou de traits de soulignement, mais doivent commencer par un caractère ou un trait de soulignement. Les traits de soulignement en tête ne sont pas recommandés car ils sont réservés aux fonctions internes. |
identifier | Ce paramètre permet d'indiquer une étiquette à utiliser comme nom de variable. |
identifierlist | Ce paramètre permet d'indiquer une étiquette à utiliser comme tableau. |
initializer | Ce paramètre permet d'indiquer une valeur à laquelle un tableau ou une variable est initialement défini dans une expression en ligne. |
LOCAL | Ce paramètre permet de déclarer et d'initialiser éventuellement une liste de variables ou de tableaux dont la visibilité et la durée de vie sont la fonction courante. |
FIELD | Ce paramètre permet de déclarer une liste d'identificateurs à utiliser comme noms de champ chaque fois qu'il est rencontré. Si la clause IN est spécifiée, la référence au nom déclaré inclut une référence implicite à l'alias spécifié. |
MEMVAR | Ce paramètre permet de déclarer une liste d'identificateurs à utiliser en tant que variables ou tableaux de mémoire privée ou publique chaque fois qu'il est rencontré. |
RETURN exp | Ce paramètre permet de retourner le contrôle à la procédure appelante ou à la fonction définie par l'utilisateur, renvoyant le résultat de exp comme valeur de la fonction. Chaque fonction doit avoir au moins une instruction RETURN renvoyant une valeur. Les instructions RETURN peuvent apparaître n'importe où dans le corps d'une fonction. |
STATIC | Ce paramètre permet de déclarer et d'initialiser éventuellement une liste de variables ou de tableaux dont la visibilité est la fonction actuelle définie par l'utilisateur et la durée de vie est la durée du programme. |
STATIC FUNCTION | Ce paramètre permet de déclarer une fonction définie par l'utilisateur ne pouvant être appelée que par des procédures et des fonctions définies par l'utilisateur déclarées dans le même fichier programme (.prg). |
Description
Cette commande permet de créer une fonction utilisateur.
Remarques
- L'instruction FUNCTION déclare une fonction définie par l'utilisateur et une liste facultative de variables locales pour recevoir des paramètres souvent appelés paramètres formels. Une fonction définie par l'utilisateur est un sous-programme composé d'un ensemble de déclarations et d'instructions exécutées chaque fois que vous faites référence à name suivi d'une paire de parenthèses ouvertes et fermées. Une définition de fonction commence par une instruction FUNCTION étant la déclaration FUNCTION et se termine par l'instruction FUNCTION, l'instruction PROCEDURE ou la fin du fichier suivante.
- Les fonctions encapsulent un bloc de code de calcul, puis créent ultérieurement des expressions à l'aide de la valeur renvoyée. Les fonctions et les procédures augmentent à la fois la lisibilité et la modularité, isolent les changements et aident à gérer la complexité.
- Une fonction dans Clipper est identique à une procédure, sauf qu'elle doit renvoyer une valeur. La valeur renvoyée peut être n'importe quel type de données, y compris un tableau, un bloc de code ou NIL. Chaque fonction doit commencer par une instruction FUNCTION et contenir au moins une instruction RETURN avec un paramètre. Les déclarations de fonction ne peuvent pas être imbriquées dans d'autres définitions de fonction. Une fonction définie par l'utilisateur peut être utilisée partout où les fonctions standard sont prises en charge, y compris les expressions.
- La visibilité des noms de fonctions se divise en deux classes. Les fonctions visibles n'importe où dans un programme sont appelées fonctions publiques et déclarées avec une instruction FUNCTION. Les fonctions n'étant visibles que dans le fichier programme en cours (.prg) sont appelées fonctions statiques et déclarées avec une instruction STATIC FUNCTION. Les fonctions statiques ont une portée à l'échelle du fichier.
- Les fonctions statiques limitent la visibilité d'un nom de fonction, limitant ainsi l'accès à la fonction. Pour cette raison, les sous-systèmes définis dans un fichier de programme unique (.prg) peuvent fournir un protocole d'accès avec une série de fonctions publiques et masquer les détails de mise en oeuvre du sous-système dans des fonctions et des procédures statiques. Puisque les références de fonction statiques sont résolues au moment de la compilation, elles préemptent les références aux fonctions publiques étant résolues au moment de la liaison. Il garantit que dans un fichier programme, une référence à une fonction statique exécute cette fonction en cas de conflit de nom avec une fonction publique.
Dernière mise à jour : Lundi, le 2 septembre 2013