Выражения if let
Выражение if let позволяет выполнять разные ветки кода в зависимости от того, соответствует ли какое-либо значение шаблону или нет:
// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0
use std::time::Duration;
fn sleep_for(secs: f32) {
let result = Duration::try_from_secs_f32(secs);
if let Ok(duration) = result {
std::thread::sleep(duration);
println!("slept for {duration:?}");
}
}
fn main() {
sleep_for(-10.0);
sleep_for(0.8);
}
if letможет быть лаконичнее, чемmatch. Например, когда нужно проверить только один вариант. Выражениеmatch, напротив, требует проверки всех вариантов.- Типичным случаем использования является проверка на значение
Someпри работе с типомOption. - В отличие от выражения
match,if letне позволяет использовать охранные выражения. - С веткой
elseэто можно использовать как выражение.