Desestructuración de Arrays y Slices en Rust

Beginner

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

Introducción

En este laboratorio, puedes aprender cómo se pueden desestructurar arrays y slices en Rust, demostrado a través de un ejemplo de código que muestra diferentes patrones para coincidir valores en el array y enlazarlos a variables.

Nota: Si el laboratorio no especifica un nombre de archivo, puedes usar cualquier nombre de archivo que desees. Por ejemplo, puedes usar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.

arrays/slices

Al igual que las tuplas, los arrays y los slices se pueden desestructurar de la siguiente manera:

fn main() {
    // Intenta cambiar los valores en el array, ¡o conviértelo en un slice!
    let array = [1, -2, 6];

    match array {
        // Vincula el segundo y el tercer elementos a las variables respectivas
        [0, second, third] =>
            println!("array[0] = 0, array[1] = {}, array[2] = {}", second, third),

        // Los valores individuales se pueden ignorar con _
        [1, _, third] => println!(
            "array[0] = 1, array[2] = {} y array[1] fue ignorado",
            third
        ),

        // También puedes vincular algunos y ignorar el resto
        [-1, second,..] => println!(
            "array[0] = -1, array[1] = {} y todos los demás fueron ignorados",
            second
        ),
        // El código siguiente no se compilaría
        // [-1, second] =>...

        // O almacenarlos en otro array/slice (el tipo depende
        // del del valor contra el que se está coincidiendo)
        [3, second, tail @..] => println!(
            "array[0] = 3, array[1] = {} y los otros elementos fueron {:?}",
            second, tail
        ),

        // Combinando estos patrones, podemos, por ejemplo, vincular el primer y
        // el último valor, y almacenar el resto de ellos en un solo array
        [first, middle @.., last] => println!(
            "array[0] = {}, middle = {:?}, array[2] = {}",
            first, middle, last
        ),
    }
}

Resumen

¡Felicidades! Has completado el laboratorio de Arrays/Slices. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.