Itérer sur un vecteur
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 11 sur 66.
Maintenant que vous savez comment créer des vecteurs et accéder aux éléments individuels, apprenons à traiter chaque élément d'un vecteur de manière systématique. La boucle for est parfaite pour cette tâche, vous permettant de visiter chaque élément en séquence.
Voici la syntaxe de base pour itérer sur un vecteur :
let names = vec!["Alice", "Bob", "Charlie"];
for name in &names {
println!("Hello, {}!", name);
}Remarquez le & avant names - cela crée une référence au vecteur, vous permettant de lire chaque élément sans prendre la propriété du vecteur lui-même. Chaque itération vous donne accès à un élément à la fois via la variable de boucle name.
La boucle for gère automatiquement la vérification des limites pour vous. Contrairement à l'indexation manuelle, vous n'essaierez jamais accidentellement d'accéder à un élément qui n'existe pas. La boucle parcourra exactement autant d'éléments que le vecteur en contient, ce qui la rend à la fois sûre et pratique.
Vous pouvez utiliser ce modèle avec n'importe quel type de vecteur :
let scores = vec![85, 92, 78, 90];
for score in &scores {
println!("Score: {}", score);
}Cette approche est la manière la plus courante et la plus idiomatique de traiter tous les éléments d'un vecteur lorsque vous avez besoin de lire leurs valeurs.
Défi
FacileÉcrivez une fonction sum_all_elements qui prend un vecteur numbers et retourne la somme de tous ses éléments.
Utilisez une boucle for pour itérer sur le vecteur et accumuler la somme de tous les éléments.
Paramètres :
numbers(Vec<i32>) : Le vecteur d'entiers à additionner
Retourne : La somme de tous les éléments du vecteur (i32)
Aide-mémoire
Pour itérer sur un vecteur, utilisez une boucle for avec une référence au vecteur :
let names = vec!["Alice", "Bob", "Charlie"];
for name in &names {
println!("Hello, {}!", name);
}Le symbole & avant le nom du vecteur crée une référence, vous permettant de lire chaque élément sans en prendre la possession (ownership). La boucle gère automatiquement la vérification des limites et parcourt exactement autant d'éléments que le vecteur en contient.
Ce modèle fonctionne avec n'importe quel type de vecteur :
let scores = vec![85, 92, 78, 90];
for score in &scores {
println!("Score: {}", score);
}Essayez vous-même
fn sum_all_elements(numbers: Vec<i32>) -> i32 {
// Écrivez le code ici
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final