Desestruturando Matrizes

VocĂȘ pode desestruturar vetores, tuplas e slices combinando seus elementos:

#[rustfmt::skip]
fn main() {
    let triplo = [0, -2, 3];
    println!("Fale-me sobre {triplo:?}");
    match triplo {
        [0, y, z] => println!("Primeiro Ă© 0, y = {y} e z = {z}"),
        [1, ..] => println!("Primeiro Ă© 1 e o resto foi ignorado"),
        _ => println!("Todos os elementos foram ignorados"),
    }
}
  • Desestruturar slices de tamanho desconhecido Ă© possĂ­vel utilizando padrĂ”es de tamanho fixo.

    fn main() {
        inspecionar(&[0, -2, 3]);
        inspecionar(&[0, -2, 3, 4]);
    }
    
    #[rustfmt::skip]
    fn inspecionar(slice: &[i32]) {
        println!("Fale-me sobre {slice:?}");
        match slice {
            &[0, y, z] => println!("Primeiro Ă© 0, y = {y}, and z = {z}"),
            &[1, ..]   => println!("Primeiro Ă© 1 e o resto foi ignorado"),
            _          => println!("Todos os elementos foram ignorados"),
        }
    }
  • Crie um novo padrĂŁo usando _ para representar um elemento.

  • Adicione mais valores ao vetor.

  • Aponte que .. vai expandir para levar em conta um nĂșmero diferente de elementos.

  • Mostre correspondĂȘncia com a cauda usando os padrĂ”es [.., b] and [a@..,b]