Section courante

A propos

Section administrative du site

fn

Fonction
Rust

Syntaxe

fn nom_de_la_fonction(paramètres) -> TypeDeRetour {
   // corps de la fonction
}

Paramètres

Nom Description
nom_de_la_fonction Ce paramètre permet de spécifier le nom de la fonction que l'on souhaite définir.
paramètres Ce paramètre permet de déclarer les variables d'entrée de la fonction, avec leurs types.
TypeDeRetour Ce paramètre permet d'indiquer le type de valeur que la fonction renverra à l'appelant.
corps de la fonction Ce paramètre permet de contenir les instructions exécutées lorsque la fonction est appelée.

Description

Ce mot réservé permet de définir une fonction ou le type de pointeur de fonction.

Remarques

Permet d'indiquer une fonction ou un pointeur de fonction.

Les fonctions constituent le principal moyen d'exécution du code en Rust. Les blocs de fonctions, généralement appelés simplement fonctions, peuvent être définis à différents endroits et se voir attribuer de nombreux attributs et modificateurs.

Les fonctions autonomes, intégrées à un module et non rattachées à quoi que ce soit d'autre, sont courantes, mais la plupart des fonctions se retrouveront dans des blocs impl, soit sur un autre type, soit comme trait impl pour ce type.

  1. fn standalone_function() {
  2.     // code
  3. }
  4.  
  5. pub fn public_thing(argument: bool) -> String {
  6.     // code
  7. }
  8.  
  9. struct Thing {
  10.     foo: i32,
  11. }
  12.  
  13. impl Thing {
  14.     pub fn new() -> Self {
  15.         Self {
  16.             foo: 42,
  17.         }
  18.     }
  19. }

En plus de présenter des types fixes sous la forme fn name(arg: type, ..) -> return_type, les fonctions peuvent également déclarer une liste de paramètres de type ainsi que les limites de traits dans lesquelles ils se situent.

  1. fn generic_function<T: Clone>(x: T) -> (T, T, T) {
  2.     (x.clone(), x.clone(), x.clone())
  3. }
  4.  
  5. fn generic_where<T>(x: T) -> T
  6.     where T: std::ops::Add<Output = T> + Copy
  7. {
  8.     x + x + x
  9. }

Déclarer les limites d'un trait entre chevrons est fonctionnellement identique à l'utilisation d'une clause where. Il appartient au programmeur de déterminer la clause la plus adaptée à chaque situation, mais where tend à être plus efficace lorsque le texte dépasse une ligne.

En plus d'être rendu public via pub, fn peut également se voir ajouter une clause extern pour une utilisation dans FFI.



Dernière mise à jour : Vendredi, le 1er Août 2025