Структуры могут быть деструктурированы следующим образом:
fn main() {
struct Foo { x: (u32, u32), y: u32 }
// деструктуризация члена структуры
let foo = Foo { x: (1, 2), y: 3 };
let Foo { x: (a, b), y } = foo;
println!("a = {}, b = {}, y = {} ", a, b, y);
// Вы можете деструктурировать структуру и переименовывать переменные,
// порядок при этом не важен
let Foo { y: i, x: j } = foo;
println!("i = {:?}, j = {:?}", i, j);
// а так же можно проигнорировать часть переменных:
let Foo { y, .. } = foo;
println!("y = {}", y);
// следующий код выдаст ошибку: в шаблоне нет упоминания поля `x`
// let Foo { y } = foo;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
структуры, шаблон ref