You've already forked comprehensive-rust
mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-06-27 11:08:45 +02:00
* Indent code in speaker notes #475 * Update stack.md * Update destructuring-arrays.md * Update hashmap.md * Update traits.md
1.0 KiB
1.0 KiB
Destructuring Arrays
You can destructure arrays, tuples, and slices by matching on their elements:
{{#include ../../third_party/rust-by-example/destructuring-arrays.rs}}
-
Destructuring of slices of unknown length also works with patterns of fixed length.
fn main() { inspect(&[0, -2, 3]); inspect(&[0, -2, 3, 4]); } #[rustfmt::skip] fn inspect(slice: &[i32]) { println!("Tell me about {slice:?}"); match slice { &[0, y, z] => println!("First is 0, y = {y}, and z = {z}"), &[1, ..] => println!("First is 1 and the rest were ignored"), _ => println!("All elements were ignored"), } }
-
Create a new pattern using
_
to represent an element. -
Add more values to the array.
-
Point out that how
..
will expand to account for different number of elements. -
Show matching against the tail with patterns
[.., b]
and[a@..,b]