在Rust中,match
語句可以用來進行模式匹配,它可以幫助你簡化代碼,使其更加清晰和易于理解。以下是一些使用match
簡化代碼的例子:
// 使用if-else語句
let x = 42;
let result = if x > 0 { "positive" } else { "negative" };
// 使用match簡化
let x = 42;
let result = match x > 0 {
true => "positive",
false => "negative",
};
// 使用if-else語句處理枚舉
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
let msg = Message::Write(String::from("Hello, world!"));
match msg {
Message::Quit => println!("Quit"),
Message::Move { x, y } => println!("Move to ({}, {})", x, y),
Message::Write(text) => println!("Write: {}", text),
Message::ChangeColor(r, g, b) => println!("Change color to ({}, {}, {})", r, g, b),
}
let numbers = vec![1, 2, 3, 4, 5];
let sum: i32 = numbers.into_iter().match_map(|n| match n {
n if n % 2 == 0 => Some(n * 2),
_ => None,
}).sum();
println!("Sum: {}", sum); // 輸出:Sum: 9
通過使用match
語句,你可以更簡潔地處理各種情況,使代碼更加清晰易讀。