Estruturas

De maneira semelhante, uma struct pode ser desestruturada como mostrada:

fn main() {
struct Foo {
x: (u32, u32),
y: u32,
}
// Experimente mudar os valores na estrutura para veres o que acontece
let foo = Foo { x: (1, 2), y: 3 };
match foo {
Foo { x: (1, b), y } => println!("First of x is 1, b = {}, y = {} ", b, y),
// nós podemos desestruturar as estruturas e renomear as variáveis,
// a ordem não é importante
Foo { y: 2, x: i } => println!("y is 2, i = {:?}", i),
// e também podemos ignorar algumas variáveis:
Foo { y, .. } => println!("y = {}, we don't care about x", y),
// isto dará um erro: o padrão não menciona o campo `x`
//Foo { y } => println!("y = {}", y),
}
let faa = Foo { x: (1, 2), y: 3 };
// Nós não precisamos dum bloco de correspondência para
// desestruturar as estruturas:
let Foo { x : x0, y: y0 } = faa;
println!("Outside: x0 = {x0:?}, y0 = {y0}");
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Consulte também:

Estruturas