Menu
Coddy logo textTech

Выражение 'if let'

Часть раздела Логика и управление потоком путешествия по Rust на Coddy. Урок 4 из 66.

Иногда нужно проверить только один конкретный шаблон, не обращая внимания на все остальные возможности. Полная запись выражения match всего с одной содержательной ветвью и универсальным шаблоном _ может показаться многословной. Rust предоставляет if let как более краткую альтернативу для таких ситуаций.

Выражение if let позволяет объединить сопоставление с образцом и условную логику в одном понятном операторе. Вот базовый синтаксис:

if let pattern = value {
    // код для выполнения, если шаблон совпадает
}

Например, вместо записи match только с одной полезной ветвью:

let number = 5;

match number {
    5 => println!("Found five!"),
    _ => (), // ничего не делать для других значений
}

Можно использовать if let, чтобы сделать код более лаконичным:

let number = 5;

if let 5 = number {
    println!("Found five!");
}

Выражение if let выполняет блок кода только тогда, когда pattern matches. Если совпадения нет, nothing не происходит — нет необходимости в явном случае "else", если только вы не хотите его добавить.

challenge icon

Задание

Легко

На вход будет подано число. Прочитайте ввод, преобразуйте его в целое число и используйте выражение if let, чтобы проверить, равно ли число точно 42. Если оно совпадает, выведите "The answer!". Если оно не совпадает, ничего не выводите.

Требования:

  • Используйте выражение if let, чтобы проверить, равно ли число 42
  • Если число равно 42, выведите "The answer!"
  • Если число имеет любое другое значение, ничего не выводите

Ввод: Одно целое число

Вывод: Выведите "The answer!", если число равно 42, иначе ничего не выводите

Попробуйте сами

use std::io;

fn main() {
    // Читать ввод
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: Напишите ваш код ниже
    // Используйте if let, чтобы проверить, равен ли number 42
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Rust