1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// run-pass fn main() { let mut x: &[_] = &[1, 2, 3, 4]; let mut result = vec![]; loop { x = match *x { [1, n, 3, ref rest @ ..] => { result.push(n); rest } [n, ref rest @ ..] => { result.push(n); rest } [] => break } } assert_eq!(result, [2, 4]); }