РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
536 of 1245 menu

Паттерн |

Паттерн | (или-паттерн) используется в конструкциях сопоставления с образцом, таких как match и if let, для объединения нескольких альтернативных шаблонов в один. Он позволяет указать, что значение должно соответствовать хотя бы одному из перечисленных вариантов. Паттерн особенно полезен при работе с перечислениями, имеющими несколько вариантов, которые должны обрабатываться одинаково.

Синтаксис

паттерн1 | паттерн2 | паттерн3

Пример

Давайте рассмотрим пример с перечислением, представляющим дни недели, и определим, является ли день выходным:

enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, } fn main() { let day = Day::Saturday; let res = match day { Day::Saturday | Day::Sunday => "weekend", _ => "workday", }; println!("{}", res); }

Результат выполнения кода:

"weekend"

Пример

Паттерн | можно использовать с привязкой значений. Давайте рассмотрим пример, где перечисление содержит данные, и мы хотим обработать несколько вариантов одинаково:

enum Shape { Circle(f64), Square(f64), Rectangle(f64, f64), } fn main() { let shape = Shape::Circle(5.0); let res = match shape { Shape::Circle(r) | Shape::Square(r) => r * r, Shape::Rectangle(w, h) => w * h, }; println!("{}", res); }

Результат выполнения кода:

25

Пример

Паттерн | также работает с if let. Давайте проверим, является ли значение одним из нескольких вариантов:

enum Status { Active, Inactive, Pending, Blocked, } fn main() { let status = Status::Blocked; if let Status::Inactive | Status::Blocked = status { println!("{}", "access denied"); } else { println!("{}", "access granted"); } }

Результат выполнения кода:

"access denied"

Смотрите также

  • конструкция match,
    которая выполняет сопоставление с образцом
  • конструкция if let,
    которая позволяет сопоставлять шаблон в условии
  • перечисление enum,
    которое определяет тип с несколькими вариантами
  • паттерн _,
    который соответствует любому значению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить