Découpage de tableaux et de slices en Rust

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, vous pouvez découvrir comment les tableaux et les slices peuvent être décomposés en Rust, démontré à travers un exemple de code qui met en évidence différents modèles pour correspondre des valeurs dans le tableau et les lier à des variables.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.

tableaux/slices

Comme les tuples, les tableaux et les slices peuvent être décomposés de cette manière :

fn main() {
    // Essayez de modifier les valeurs dans le tableau, ou en faire un slice!
    let array = [1, -2, 6];

    match array {
        // Lie le deuxième et le troisième éléments aux variables respectives
        [0, second, third] =>
            println!("array[0] = 0, array[1] = {}, array[2] = {}", second, third),

        // Les valeurs individuelles peuvent être ignorées avec _
        [1, _, third] => println!(
            "array[0] = 1, array[2] = {} et array[1] a été ignoré",
            third
        ),

        // Vous pouvez également lier certains et ignorer le reste
        [-1, second,..] => println!(
            "array[0] = -1, array[1] = {} et toutes les autres ont été ignorées",
            second
        ),
        // Le code ci-dessous ne compilerait pas
        // [-1, second] =>...

        // Ou les stocker dans un autre tableau/slice (le type dépend
        // de celui de la valeur contre laquelle on est en train de matcher)
        [3, second, tail @..] => println!(
            "array[0] = 3, array[1] = {} et les autres éléments étaient {:?}",
            second, tail
        ),

        // En combinant ces modèles, nous pouvons, par exemple, lier la première et
        // la dernière valeur, et stocker le reste d'entre elles dans un seul tableau
        [first, middle @.., last] => println!(
            "array[0] = {}, middle = {:?}, array[2] = {}",
            first, middle, last
        ),
    }
}

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur les tableaux et les slices. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.