0%

Rust 010 Match

Rust 匹配

這語法就像一個選擇器一樣,根據值選擇內容,而你也可以設定很多個值甚至是一個範圍都可以。

1
2
3
4
5
6
7
8
9
10
11
12
fn matchs(n: u32) {
match n {
1 => println!("1"),
| 2 | 3 | 4 => println!("234"),
5..=6 => println!("5~6"),
_ => println!("GG"),
}
}

fn main() {
matchs(3);
}

match還可以用tuple來判斷裡面的值。

1
2
3
4
5
6
7
8
9
10
11
12
13
fn match_tuple() {
let tuple = (1, 1);

match tuple {
(0, x) => println!("(0, {})", x),
(x, y) if x == y => println!("({}, {})", x, y),
_ => println!("GG"),
}
}

fn main() {
match_tuple();
}

match可以允許我們綁定其他的變數,假設我設定n但是我想用k是可以的,只需要加一個@。

1
2
3
4
5
6
7
8
9
10
11
fn match_v(n: u32) {
match n {
k @ 1 ..= 3 => println!("Value {}", k),
k @ 4 ..= 6 => println!("Value {}", k),
_ => println!("GG"),
}
}

fn main() {
match_v(4);
}