“Сопоставление ржавчины” можно перевести как “Сопоставление шаблона ржавчины” на английском языке. Сопоставление с образцом — это мощная функция языка программирования Rust, которая позволяет сопоставлять структуру данных и выполнять действия на основе этих шаблонов. Вот несколько методов сопоставления с образцом в Rust, а также примеры кода:
-
Матчевое оружие:
fn main() { let number = 3; match number { 1 => println!("One"), 2 => println!("Two"), 3 => println!("Three"), _ => println!("Other"), } }В этом примере значение
numberсопоставляется с различными шаблонами с использованием рукавов сопоставления, и соответствующий блок кода выполняется. -
Деструктуризация:
struct Point { x: i32, y: i32, } fn main() { let p = Point { x: 0, y: 0 }; match p { Point { x, y } => println!("x: {}, y: {}", x, y), } }Здесь структура
Pointдеструктурируется в ответвлении сопоставления для извлечения полейxиy. -
Перечисления:
enum Color { Red, Green, Blue, } fn main() { let color = Color::Red; match color { Color::Red => println!("Red color"), Color::Green => println!("Green color"), Color::Blue => println!("Blue color"), } }В этом примере сопоставление шаблонов используется с перечислениями для сопоставления различных вариантов цвета.
-
Сопоставление нескольких шаблонов:
fn main() { let number = 5; match number { 1 | 2 | 3 => println!("One, Two, or Three"), 4..=6 => println!("Four to Six"), _ => println!("Other"), } }Здесь несколько шаблонов сопоставляются с помощью оператора
|, а шаблон диапазона сопоставляется с помощью..=. -
Игнорирование значений:
fn main() { let number = Some(7); match number { Some(_) => println!("Some value"), None => println!("None"), } }В этом примере подстановочный знак
_используется для игнорирования значения при сопоставлении с вариантомSome.