Section courante

A propos

Section administrative du site

mut

Mutabilité
Rust

Syntaxe

let mut nom_variable [: Type] = valeur;
let nom_reference: &mut Type = &mut nom_variable;

Paramètres

Nom Description
nom_variable Ce paramètre permet de nommer la variable mutable que l'on souhaite déclarer ou modifier.
Type Ce paramètre permet de spécifier explicitement le type de la variable ou de la référence mutable.
valeur Ce paramètre permet de fournir une valeur initiale à la variable mutable lors de sa déclaration.
nom_reference Ce paramètre permet de désigner une référence mutable, c'est-à-dire un accès modifiable à une variable.

Description

Ce mot réservé permet de dénoter la mutabilité dans les références, les pointeurs bruts ou les liaisons de motifs.

Remarques

Permet d'indiquer qu'une variable, une référence ou un pointeur est mutable.

mut peut être utilisé dans plusieurs situations. La première concerne les variables mutables, utilisables partout où une valeur peut être associée à un nom de variable. Voici quelques exemples :

  1. // Une variable mutable dans la liste des paramètres d'une fonction.
  2. fn foo(mut x: u8, y: u8) -> u8 {
  3.     x += y;
  4.     x
  5. }
  6.  
  7. // Modification d'une variable mutable.
  8. let mut a = 5;
  9. a = 6;
  10.  
  11. assert_eq!(foo(3, 4), 7);
  12. assert_eq!(a, 6);

La seconde est celle des références mutables. Elles peuvent être créées à partir de variables mutables et doivent être uniques : aucune autre variable ne peut avoir de référence mutable, ni de référence partagée.

  1. // Prendre une référence mutable
  2. fn push_two(v: &mut Vec<u8>) {
  3.     v.push(2);
  4. }
  5.  
  6. // Une référence mutable ne peut pas être prise pour une variable non mutable.
  7. let mut v = vec![0, 1];
  8. // Passer une référence mutable.
  9. push_two(&mut v);
  10.  
  11. assert_eq!(v, vec![0, 1, 2]);
  12.  
  13. let mut v = vec![0, 1];
  14. let mut_ref_v = &mut v;
  15. let ref_v = &v;
  16. mut_ref_v.push(2);

Les pointeurs bruts mutables fonctionnent de manière similaire aux références mutables, avec la possibilité supplémentaire de ne pas pointer vers un objet valide. La syntaxe est *mut Type.



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