ExpertiDict

Rust · Intermediário · Português · Técnico

desestruturação

/de.ʒes.tɾu.tu.ɾa.ˈsɐ̃w̃/substantivo

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

Veja também

Todos os termos de Rust