Структури
Як і кортежі, структури також можуть бути деструктуровані шляхом зіставлення:
struct Foo { x: (u32, u32), y: u32, } #[rustfmt::skip] fn main() { let foo = Foo { x: (1, 2), y: 3 }; match foo { Foo { x: (1, b), y } => println!("x.0 = 1, b = {b}, y = {y}"), Foo { y: 2, x: i } => println!("y = 2, x = {i:?}"), Foo { y, .. } => println!("y = {y}, інші поля були проігноровані"), } }
This slide should take about 4 minutes. 
                    - Змініть значення літералів у 
foo, відповідно до інших шаблонів. - Додайте нове поле до 
Fooі внесіть потрібні зміни до шаблону. - Різницю між захопленням і постійним виразом може бути важко помітити. Спробуйте змінити 
2у другій гілці на змінну, і побачте, що це непомітно не працює. Змініть ії наconstі подивіться, що це знову запрацює.