切片模式

2018-08-12 22:03 更新

切片模式

如果用戶希望匹配一個切片或數(shù)組,用戶可以使用 & 來修飾 slice_patterns 功能。

#![feature(slice_patterns)]

fn main() {
let v = vec!["match_this", "1"];

match &v[..] {
["match_this", second] => println!("The second element is {}", second),
_ => {},
}
}

advanced_slice_pattern 使用戶可以使用 .. 來表示切片匹配模式內(nèi)部的元素任何數(shù)目。此通配符僅能為給定的數(shù)組使用一次。如果在 .. 前有個標(biāo)識符,切片的結(jié)果將會綁定到這個名字。比如:

`#![feature(advanced_slice_patterns, slice_patterns)]

fn is_symmetric(list: &[u32]) -> bool {
    match list {
        [] | [_] => true,
        [x, inside.., y] if x == y => is_symmetric(inside),
        _ => false
    }
}

fn main() {
let sym = &[0, 1, 4, 2, 4, 1, 0];
assert!(is_symmetric(sym));

let not_sym = &[0, 1, 7, 2, 4, 1, 0];
assert!(!is_symmetric(not_sym));
} `
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號