Menu
Coddy logo textTech

Itération mutable

Fait partie de la section Logique & Flux du Journey Rust de Coddy. Leçon 12 sur 66.

Parfois, vous devez faire plus que simplement lire les éléments d’un vecteur : vous devez les modifier. Alors que la leçon précédente montrait comment parcourir un vecteur et lire ses valeurs, cette leçon vous apprend à modifier les éléments pendant le parcours à l’aide de références mutables.

Pour modifier des éléments lors de l’itération, vous devez utiliser &mut au lieu de & dans votre boucle for :

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

&mut numbers crée une référence mutable vers le vecteur, et chaque itération vous donne une référence mutable vers un élément individuel. L’opérateur * (appelé opérateur de déréférencement) est utilisé pour accéder à la valeur réelle vers laquelle pointe la référence et la modifier.

Ce modèle est extrêmement utile pour transformer des données sur place. Au lieu de créer un nouveau vecteur avec des valeurs modifiées, tu peux mettre à jour efficacement celui qui existe déjà. Le vecteur doit être déclaré comme mut pour que cela fonctionne, puisque tu modifies son contenu.

Après la boucle ci-dessus, numbers contiendrait [2, 4, 6, 8] — chaque valeur d’origine étant doublée sur place.

challenge icon

Défi

Facile
Écrivez une fonction add_ten_to_all qui prend un vecteur mutable numbers, ajoute 10 à chaque élément directement dans le vecteur, puis renvoie le vecteur modifié.

Utilisez une itération mutable avec &mut pour modifier directement chaque élément. N'oubliez pas d'utiliser l'opérateur de déréférencement * pour accéder aux valeurs réelles et les modifier.

Paramètres :

  • numbers (Vec<i32>) : un vecteur mutable d'entiers à modifier

Renvoie : le vecteur modifié avec 10 ajouté à chaque élément (Vec<i32>)

Essayez vous-même

fn add_ten_to_all(mut numbers: Vec<i32>) -> Vec<i32> {
    // Écrivez le code ici
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Rust en ligne