以下是一些常见的模式匹配示例:
1. 解构元组:
fn main() {
let tuple = (42, "hello");
// 使用模式匹配解构元组
match tuple {
(0, _) => println!("First element is zero"),
(x, "hello") => println!("Got {} with 'hello'", x),
_ => println!("No match"),
}
}
2. 解构结构体:
// 定义一个名为 `Person` 的结构体
struct Person {
name: String,
age: u32,
}
fn main() {
let person = Person {
name: String::from("Alice"),
age: 30,
};
// 使用模式匹配解构结构体
match person {
Person { name, age: 30 } => println!("Person named {} is 30 years old", name),
Person { name, age } => println!("Person named {} is {} years old", name, age),
}
}
3. 匹配枚举:
// 定义一个名为 `Shape` 的枚举
enum Shape {
Circle(f64),
Rectangle(u32, u32),
}
fn main() {
let shape = Shape::Rectangle(10, 20);
// 使用模式匹配匹配枚举
match shape {
Shape::Circle(radius) => println!("Circle with radius: {}", radius),
Shape::Rectangle(width, height) => println!("Rectangle with width {} and height {}", width, height),
}
}
4. if let 表达式:
fn main() {
let option = Some(42);
// 使用 if let 表达式匹配 Option
if let Some(value) = option {
println!("Got a value: {}", value);
} else {
println!("Got None");
}
}
这些是一些常见的模式匹配示例,模式匹配在 Rust 中是一种强大的工具,用于处理复杂的数据结构和多种情况。它使得代码更具可读性、清晰性和灵活性。
转载请注明出处:http://www.zyzy.cn/article/detail/6797/Rust