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 :
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.
- // Prendre une référence mutable
- fn push_two(v: &mut Vec<u8>) {
- v.push(2);
- }
-
- // Une référence mutable ne peut pas être prise pour une variable non mutable.
- let mut v = vec![0, 1];
- // Passer une référence mutable.
- push_two(&mut v);
-
- assert_eq!(v, vec![0, 1, 2]);
-
- let mut v = vec![0, 1];
- let mut_ref_v = &mut v;
- let ref_v = &v;
- 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.