Desestruturando

Desestruturação é uma maneira de extrair dados de uma estrutura de dados escrevendo um padrão que é correspondido à estrutura de dados, vinculando variåveis aos subcomponentes da estrutura de dados.

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

Tuplas

fn main() {
    describe_point((1, 0));
}

fn describe_point(point: (i32, i32)) {
    match point {
        (0, _) => println!("no eixo Y"),
        (_, 0) => println!("no eixo X"),
        (x, _) if x < 0 => println!("Ă  esquerda do eixo Y"),
        (_, y) if y < 0 => println!("abaixo do eixo X"),
        _ => println!("primeiro quadrante"),
    }
}

Matrizes

#[rustfmt::skip]
fn main() {
    let triple = [0, -2, 3];
    println!("Fale-me sobre {triple:?}");
    match triple {
        [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"),
    }
}
This slide should take about 5 minutes.
  • Crie um novo padrĂŁo usando _ para representar um elemento.
  • Adicione mais valores Ă  matriz.
  • 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]