Guide sur les Range
Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 65 sur 75.
Dans cette leçon, nous explorerons plus en détail le fonctionnement de range.
Syntaxe de base des plages :
start..end- Crée une plage de start à end (exclusif)start..=end- Crée une plage de start à end (inclusif)
..end- Crée un intervalle de 0 à end (exclu)..=end- Crée un intervalle de 0 à end (inclus)
start..- Crée une plage allant de start à l'infini..- Crée une plage allant de l'infini négatif à l'infini positif
Inverser une plage avec .rev() :
(0..5).rev()- 4, 3, 2, 1, 0(0..=5).rev()- 5, 4, 3, 2, 1, 0
Sauts d'étape avec .step_by(n) :
(0..10).step_by(2)- 0, 2, 4, 6, 8(0..10).rev().step_by(2)- 9, 7, 5, 3, 1
Par exemple :
// Plage avant de base
for i in 0..5 { }
// Valeurs : 0, 1, 2, 3, 4// Intervalle inclusif
for i in 0..=5 { }
// Valeurs : 0, 1, 2, 3, 4, 5// Intervalle inversé
for i in (0..5).rev() { }
// Valeurs : 4, 3, 2, 1, 0// Avancer de 2 en 2
for i in (0..10).step_by(2) { }
// Valeurs : 0, 2, 4, 6, 8// Combiner l'inversion et le pas
for i in (0..10).rev().step_by(3) { }
// Valeurs : 9, 6, 3, 0Défi
FacileCréez un programme qui commence avec deux tableaux de nombres et affiche pour le premier tableau tous les nombres à l'envers par bonds de 3 à travers les positions du tableau, et pour le second, il affiche tous les nombres divisibles par 4 dans l'ordre inverse. Affichez au format suivant :
Array 1: [1], [2], [3], ...
Array 2: [1], [2], [3], ...Aide-mémoire
Syntaxe des plages (ranges) en Rust :
start..end- Crée une plage de start à end (exclusif)start..=end- Crée une plage de start à end (inclusif)..end- Crée une plage de 0 à end (exclusif)..=end- Crée une plage de 0 à end (inclusif)start..- Crée une plage de start à l'infini..- Crée une plage de l'infini négatif à l'infini positif
Plages inversées en utilisant .rev() :
(0..5).rev()- 4, 3, 2, 1, 0(0..=5).rev()- 5, 4, 3, 2, 1, 0
Sauts d'étape en utilisant .step_by(n) :
(0..10).step_by(2)- 0, 2, 4, 6, 8(0..10).rev().step_by(2)- 9, 7, 5, 3, 1
// Basic forward range
for i in 0..5 { }
// Values: 0, 1, 2, 3, 4
// Inclusive range
for i in 0..=5 { }
// Values: 0, 1, 2, 3, 4, 5
// Reverse range
for i in (0..5).rev() { }
// Values: 4, 3, 2, 1, 0
// Step by 2
for i in (0..10).step_by(2) { }
// Values: 0, 2, 4, 6, 8
// Combine reverse and step
for i in (0..10).rev().step_by(3) { }
// Values: 9, 6, 3, 0Essayez vous-même
fn main() {
let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
print!("Array 1: ");
// Écrivez votre code ici
println!();
print!("Array 2: ");
// Écrivez votre 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 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