Rust · Intermediário · Português · Técnico
desestruturação
Abrir tuplas, structs, enums e fatias em suas partes com um padrão, direto em let, em parâmetros de função ou em match.
Onde usar
Aparece em laços como for (i, x) in v.iter().enumerate() e em let para extrair vários campos de uma vez. O padrão precisa cobrir todos os formatos possíveis do valor.
Em código
let (a, b) = (1, "x");
struct P { x: i32, y: i32 }
let p = P { x: 1, y: 2 };
let P { x, y } = p;
println!("{a} {b} {x} {y}");Exemplos
Usei desestruturação para pegar x e y de uma vez.
O for já faz a desestruturação da tupla.
Cuidado
Em let o padrão precisa ser irrefutável; para padrões que podem falhar use if let ou let else.
Sinônimos
destructuring