Menu
Coddy logo textTech

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, 0
challenge icon

Défi

Facile

Cré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, 0

Essayez 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
}
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 Fundamentals