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); }
matchとは異なり、if letはすべての分岐を網羅する必要はありません。そのため、matchよりも簡潔に書ける場合があります。- よくある使い方は、
Optionを扱う際にSomeの値を処理することです。 matchとは異なり、if letはパターンマッチングのガード節をサポートしていません。else節と組み合わせると、式として使用できます。