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

Оператор if let

Оператор if let - это удобная сокращённая форма конструкции match, которая выполняет код только тогда, когда значение совпадает с указанным образцом. Он принимает образец и выражение для сопоставления, а также блок кода, выполняемый при успешном совпадении. Если совпадение не произошло, блок пропускается. Также можно добавить ветку else для обработки случая, когда образец не совпал.

Оператор if let особенно полезен при работе с типами Option и Result, когда нужно обработать только одно конкретное значение, а остальные проигнорировать.

Синтаксис

if let pattern = expression { // code }

Синтаксис с веткой else:

if let pattern = expression { // code } else { // code }

Пример

Давайте проверим, содержит ли переменная типа Option значение, и выведем его:

fn main() { let opt = Some(5); if let Some(x) = opt { println!("{}", x); } }

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

5

Пример

Давайте рассмотрим случай, когда значение не совпадает с образцом, и используем ветку else:

fn main() { let opt = None; if let Some(x) = opt { println!("{}", x); } else { println!("no value"); } }

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

"no value"

Пример

Давайте применим if let для обработки конкретного варианта перечисления:

enum Color { Red, Green, Blue, } fn main() { let color = Color::Green; if let Color::Green = color { println!("green"); } }

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

"green"

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

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