Boucle for améliorée
Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 66 sur 75.
Il existe différentes manières d'itérer sur un tableau, en voici quelques-unes :
Considérez le tableau suivant :
let numbers = [1, 2, 3, 4, 5];Itérateur direct :
for num in numbers.iter() {} // Valeurs : 1, 2, 3, 4, 5
Index & Valeur :
for (index, value) in numbers.iter().enumerate() { } // Valeurs : (0,1), (1,2), (2,3), (3,4), (4,5)
Tranches de taille spécifique :
for chunk in numbers.chunks(2) { } // Valeurs : [1,2], [3,4], [5]
Itérer avec mutation :
for num in numbers.iter_mut() { *num *= 2; } // Le tableau devient : [2, 4, 6, 8, 10]
Défi
FacileCréez un programme qui traite une liste de courses avec des articles et leurs prix, et fournit différentes vues des données.
Le programme doit :
- Afficher chaque numéro d'article et son prix (en utilisant
enumerate) - Afficher les prix par paires (en utilisant
chunks) en tant que "bundle deals" - Appliquer une remise de 10 % à tous les prix (en utilisant
iter_mut) - Afficher les prix finaux après remise
Aide-mémoire
Différentes façons d'itérer sur des tableaux en Rust :
Itérateur direct :
for num in numbers.iter() {}
// Valeurs : 1, 2, 3, 4, 5Index et valeur avec enumerate :
for (index, value) in numbers.iter().enumerate() { }
// Valeurs : (0,1), (1,2), (2,3), (3,4), (4,5)Tranches de taille spécifique avec chunks :
for chunk in numbers.chunks(2) { }
// Valeurs : [1,2], [3,4], [5]Itérer avec mutation en utilisant iter_mut :
for num in numbers.iter_mut() {
*num *= 2;
}
// Le tableau devient : [2, 4, 6, 8, 10]Essayez vous-même
fn main() {
let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];
println!("Original Prices:");
// TODO: Utiliser enumerate pour afficher chaque numéro d'article et son prix
// Attendu : "Item 1: $2.99" etc.
println!("\nBundle Deals:");
// TODO: Utiliser chunks pour afficher des paires de prix et leurs sommes
// Attendu : "Bundle 1: $2.99 + $1.50 = $4.49" etc.
// TODO: Utiliser iter_mut pour appliquer une remise de 10 % à tous les prix
println!("\nPrices after 10% discount:");
// TODO: Afficher les prix finaux après la remise
// Attendu : "$2.69" etc.
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Afficher dans la consoleLire la saisie utilisateurRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 311Fonctions
Déclaration de fonctionsParamètres et argumentsValeurs de retourValeurs de retour multiplesRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation14Parcourir les tableaux
Guide sur les RangeBoucle for amélioréeEmprunt dans une boucleOpérations courantes sur les tableaux3Variables - Partie 2
Déclaration de typeConventions de nommageInférence de typeRécapitulatif - Initialiser des variablesConversion de type9Boucles
Boucle For sur une sérieBoucle WhileBreakContinueBoucles imbriquéesÉtiquettes de boucleBoucle infinieRécapitulatif - Entrée dynamique12Bases des tableaux
Déclaration de tableauxTableau comme paramètreAccès aux élémentsModification de tableauxRécapitulatif - Affichage formaté d'un tableau15Opérations sur les chaînes
Méthodes de chaînesMacro format!Conversion de chaînesRécapitulatif - Format