Qu'est-ce qu'une fonction?
Avant d'entrer dans les détails de la création et de l'utilisation d'une fonction, décomposons ce qu'est une fonction et pourquoi l'utiliser.
Une fonction n'est rien de plus qu'un ou plusieurs blocs de code qui sont regroupés et effectue une seule entité. Les fonctions sont une fonctionnalité lourde dans la plupart des langages de programmation car ils nous permettent d'organiser et d'exporter du code vers d'autres parties du programme dans un modèle lisible.
À ce jour, vous avez rencontré la fonction principale de la langue de la rouille. La fonction principale est un type spécial de fonction qui sert de point d'entrée pour un programme de rouille.
Avec cela à l'écart, discutons de la façon de créer et d'utiliser des fonctions dans la rouille.
Fonctions de rouille
Voici les étapes à prendre lors de la définition d'une fonction de rouille.
Nous pouvons exprimer le code ci-dessus dans la syntaxe ci-dessous:
fnfunction_name (paramètres)Le type de fonction le plus élémentaire est celui qui n'accepte aucun paramètre ni ne contient une valeur de retour. Nous pouvons définir une telle fonction comme indiqué dans l'exemple ci-dessous:
fn say_hello ()Ce qui précède illustre le concept le plus fondamental d'une définition de fonction. Nous commençons par le mot-clé FN suivi du nom de la fonction, dans notre cas, say_hello (). Nous ouvrons ensuite le corps de la fonction à l'intérieur d'une paire de bretelles bouclées.
Le corps de fonction ne contient que la logique de ce que fait la fonction. Parfois, une fonction appellera d'autres fonctions et les utilisera.
Appeler une fonction
Une fois que nous avons déclaré une fonction, nous pouvons l'utiliser pour effectuer les actions définies. Nous nous référons au processus d'utilisation d'une fonction comme appel de fonction ou invoquant une fonction.
Dans Rust, nous appelons une fonction en fournissant son nom et une paire de parenthèses. Cela indique au compilateur que nous souhaitons exécuter les instructions définies dans cette fonction.
Dans notre exemple, nous pouvons appeler notre fonction à l'intérieur de la fonction principale comme indiqué dans l'exemple ci-dessous:
fn main ()Paramètres de fonction
L'une des principales raisons de l'utilisation des fonctions est de passer les paramètres. Un paramètre est un type spécial de variable que nous pouvons transmettre à la fonction et permettre la modification de la logique que la fonction utilise.
Vous pouvez souvent entendre le paramètre de mot et l'argument des termes utilisés de manière interchangeable. Bien qu'ils aient une différence, ce n'est vraiment rien pour vous empêcher de construire des outils avec Rust.
Pour définir un ensemble de paramètres de fonction, nous commençons par définir le nom du paramètre suivi de son type à l'intérieur des parenthèses de la fonction.
La syntaxe est comme indiqué:
fn function_name (paramètre1: data_type)Remarque Vous devez effectuer l'annotation de type pour un paramètre de fonction.
Prenons la fonction Say_hello que nous avons définie plus tôt et l'améliorez afin qu'elle dise bonjour à l'utilisateur spécifique.
Nous pouvons faire:
fn Say_hello (nom: & str)Dans l'exemple ci-dessus, nous définissons un paramètre pour la fonction Say_hello de Type & Str. Nous pouvons maintenant passer un nom à la fonction, et il nous saluera avec le nom fourni.
Pour passer le paramètre pendant l'appel de fonction, nous pouvons faire:
fn main ()Instruction et expression de la fonction
Comme mentionné, un corps de fonction comprend des instructions de code qui effectuent une action. Nous avons utilisé une macro définie pour imprimer quelque chose à l'écran dans notre exemple. Cependant, nous pouvons créer une logique personnalisée pour nos fonctions.
Par exemple, prenez la fonction ci-dessous qui prend deux entiers et renvoyez le maximum des deux:
fnmaximum (x: i32, y: i32)Nous pouvons ensuite appeler la fonction et passer les deux valeurs entières comme indiqué ci-dessous:
fn main ()L'exécution du code ci-dessus doit imprimer:
La valeur maximale est: 100Valeurs de retour de fonction
Une fonction peut également renvoyer une valeur basée sur la logique et les actions qu'elle effectue. Nous pouvons ensuite utiliser la valeur renvoyée de la fonction pour effectuer d'autres opérations. Bien que nous ne nommez pas la valeur de retour dans une fonction, nous devons dire au compilateur que nous nous attendons à ce que la fonction renvoie une valeur d'un type spécifique.
Nous faisons cela en utilisant la flèche -> notation.
Prenez la fonction maximale () que nous avons définie plus tôt. Au lieu d'imprimer la valeur maximale, nous pouvons avoir la fonction renvoie la valeur maximale, et nous pouvons l'utiliser pour agir sur d'autres parties du programme.
Pour définir un type de retour de fonction, nous pouvons utiliser la syntaxe comme:
fn function_name (paramètre: type) -> return_typeConsidérez l'exemple ci-dessous qui redéfinit la fonction maximale pour inclure une valeur de retour:
fn maximum (x: i32, y: i32) -> i32Dans ce cas, nous nous attendons à ce que la fonction renvoie un type i32.
Une fois que nous avons défini un type de retour de fonction, nous devons nous assurer que la fonction renvoie réellement quelque chose.
Nous pouvons le faire en utilisant le mot-clé de retour. Par exemple, pour renvoyer la valeur maximale de la fonction ci-dessus, nous pouvons faire:
fnmaximum (x: i32, y: i32) -> i32La fonction doit renvoyer la valeur de la variable max.
Un autre format que nous pouvons utiliser pour renvoyer une valeur à partir d'une fonction consiste à spécifier la valeur de retour sans terminateur semi-colon.
Un exemple est comme indiqué:
fnmain ()L'exemple ci-dessus doit se comporter de la même manière que le mot-clé de retour.
Nous pouvons ensuite utiliser la valeur renvoyée de la fonction pour effectuer une action. Par exemple:
fn main ()Ici, nous prenons la valeur renvoyée de la fonction maximale et le multiplions par 2.
De clôture
Pour ce tutoriel, nous avons exploré le concept de fonctions, comment définir une fonction, des paramètres de fonction, des valeurs de retour de fonction, et plus. Les fonctions sont un concept important dans la programmation, et ils nous permettent d'organiser et de réutiliser le code sans répétition.
Nous espérons que vous avez apprécié le tutoriel.
Au revoir!