Dans les leçons précédentes, vous avez appris à créer des constantes et des variables pour stocker et utiliser des valeurs, et à prendre des décisions dans le code à l’aide de l’expression if et des opérateurs de décision tels que and et or.
Vous devez maintenant apprendre à écrire du code afin de le réutiliser facilement dans votre programme.
Comme nous l’avons vu dans la leçon 2, une expression est la plus petite unité de code qui produit un résultat. Nous avons également appris que lorsqu’une expression exécute et produit une valeur, la valeur qu'elle produit est le résultat.
Utilisez les connaissances que vous avez acquises pour rendre votre code plus efficace.
Vous pouvez combiner les expressions avec d'autres expressions en vue de créer des fonctions, puis utiliser ces dernières à l'infini dans votre code sans avoir à les réécrire systématiquement.
Utiliser des expressions dans des fonctions
Une fonction (également appelée routine) est un code réutilisable qui fournit des instructions pour exécuter une action, ou pour créer une sortie basée sur une entrée.
Les fonctions sont constituées d’expressions combinées.
Pour définir une fonction, vous devez :
- spécifier un nom unique (ou **identificateur) ;
- déterminer le type d’information qui en résultera ;
- déterminer ce qu’elle va faire lorsque vous l’appellerez.
Voici la syntaxe de base d'une fonction :
name() : type =
codeblock
Nous analyserons en détail les blocs de code dans la leçon suivante ; pour l’heure, il suffit de savoir que le bloc de code est l’endroit où vous placez les expressions que vous utilisez pour construire votre fonction.
Fonctions et appels de fonctions
Grosso modo, une fonction est une séquence d’expressions que vous avez nommée.
Un programme utilise une fonction en appelant cette fonction par son nom. L'appel invoque (active) cette fonction. Il s'agit d'un appel de fonction.
Autrement dit, au lieu de répéter sans cesse toutes les expressions que vous avez placées dans une fonction, vous pouvez les regrouper dans la fonction nommée de façon à ce que, chaque fois que vous appelez cette fonction dans le programme, l'ordinateur désigne cette fonction et exécute les expressions qu'elle contient.
Par exemple, plutôt que de toujours définir le nombre de pièces par piège à souris (CoinsPerMousetrap) sur une valeur de 100, vous pourriez écrire un code qui modifierait cette valeur en choisissant une valeur aléatoire à chaque exécution.
Dans l'exemple ci-dessous, l'expression est définie pour générer un nombre aléatoire compris entre un et dix en utilisant l'expression GetRandomInt(1, 10).
Voici le détail :
GetRandomInt() |
Il s'agit d'une fonction intégrée dans Verse qui signifie à peu près ce que son nom suggère : elle génère un nombre entier aléatoire. |
1, 10 |
Indique la plage numérique pour la génération du nombre entier. Si vous utilisez 20, 50, vous obtenez un nombre compris entre vingt et cinquante. Notez que cette plage est indiquée entre parenthèses (), c'est-à-dire qu'elle fait partie du nom de cette expression. |
Il s'agit d'un appel de fonction, car il indique à l'ordinateur d'appeler la fonction permettant d’obtenir un nombre entier aléatoire dans la plage de 1 à 10 que vous avez définie.
Si vous souhaitez utiliser une fonction dans votre code, vous pouvez appeler la fonction par son nom. Chaque fois que vous appelez GetRandomInt(), un nouveau nombre aléatoire est généré.
Vous pourriez par exemple l'utiliser pour modifier de façon aléatoire le prix d’un piège à souris :
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation } }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
OnBegin<override>()<suspends> : void =
# Initialiser les pièces sur une valeur de 500. Étant donné qu'il s'agit d'une variable, il est possible de la modifier ultérieurement.
var Coins : int = 500
# Initialiser CoinsPerMousetrap avec un nombre entier aléatoire compris entre 1 et 100
CoinsPerMousetrap : int = GetRandomInt(1, 100)
# Consigner la valeur actuelle des pièces (500) dans le journal.
Print("Coins starts at {Coins}.")
# Réduire le nombre de pièces de monnaie via CoinsPerMousetrap, puis consigner la nouvelle valeur dans le journal.
set Coins = Coins - CoinsPerMousetrap
Print("After buying one mousetrap, Coins is {Coins}.")
Notez que pratiquement chaque ligne de code dans l'exemple ci-dessus est accompagnée d'un commentaire qui explique la partie correspondante du code. Ces commentaires vous sont utiles lorsque vous revenez à votre code après un certain temps, mais aident également les programmeurs qui souhaitent ajouter ou modifier le code que vous avez écrit.
Méthodes
Comme nous l’avons vu dans la leçon 2, un type définit les opérations qui peuvent être effectuées sur les valeurs stockées dans une variable ou une constante. Les types peuvent également avoir une autre utilité.
De la même manière que les types possèdent leurs propres opérations, ils possèdent aussi leurs propres fonctions. Ces fonctions, appelées méthodes, doivent être appelées d'une manière particulière.
Au lieu de les appeler en écrivant simplement leur nom (p. ex., Print() ou GetRandomInt()), un appel de méthode doit commencer par le nom d'une variable (ou d'une constante) suivi d'un signe ., puis du nom de la méthode. Par exemple, l'appel de la méthode Pounce() sur une variable Cat serait similaire à celle-ci :
Cat.Pounce()
Classes
Une classe est un modèle que vous pouvez utiliser pour créer des objets ayant des comportements et des propriétés similaires. Une classe est un type composite, c’est-à-dire qu'elle est constituée de données d'autres types qui sont regroupées.
Lorsque vous définissez une classe, les données de cette classe peuvent être héritées par toutes les sous-classes.
Une méthode est donc une fonction jointe à une classe. C’est la raison pour laquelle toutes les méthodes ne fonctionnent pas avec tous les types. La méthode doit être déclarée dans la définition de la classe correspondant à ce type, ou dans une classe dont ce type hérite. Il est tout à fait normal que vous ne compreniez pas tous les concepts abordés ici. Il s'agit simplement d'une introduction rapide, nous approfondirons ces concepts dans une prochaine leçon.
Récapitulatif
- Une fonction est une séquence nommée d'expressions que vous pouvez réutiliser.
- Les fonctions sont également appelées routines.
- Les fonctions vous permettent de gagner du temps et de réduire les erreurs, car vous n'avez pas à saisir (ou à gérer) plusieurs lignes du même code.
- Lorsque vous réutilisez une fonction dans une ligne de code, vous utilisez un appel de fonction.
- Une méthode est une fonction qui appartient à un certain type, et qui doit être appelée sur une variable ou une constante de ce type.
- Les classes sont des types composites qui vous permettent de combiner des données provenant d'autres types, puis de partager les comportements et les propriétés avec des sous-classes.