構造体(structs)
Like tuples, Struct can also be destructured by matching:
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}, other fields were ignored"), } }
This slide should take about 4 minutes.
foo
のリテラル値を他のパターンと一致するように変更します。Foo
に新しいフィールドを追加し、必要に応じてパターンに変更を加えます。- キャプチャと定数式を区別しづらい場合があります。2 つ目のアームの
2
を変数に変更してみて、うまく機能しないことを確認します。これをconst
に変更して、再び動作することを確認します。