4.5.1 标签

01-标签 — Comprehensive Rust

译文 · 基于 Comprehensive Rust

原文链接: https://google.github.io/comprehensive-rust/control-flow-basics/break-continue/labels.html

4.5.1 标签

continue 和 break 都可以可选地接受一个标签参数,用于跳出嵌套循环:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// Copyright 2024 Google LLC
// SPDX-License-Identifier: Apache-2.0
fn main() {
    let s = [[5, 6, 7], [8, 9, 10], [21, 15, 32]];
    let mut elements_searched = 0;
    let target_value = 10;
    'outer: for i in 0..=2 {
        for j in 0..=2 {
            elements_searched += 1;
            if s[i][j] == target_value {
                break 'outer;
            }
        }
    }
    dbg!(elements_searched);
}
  • 带标签的 break 也适用于任意块,例如:
    1
    2
    3
    4
    5
    6
    7
    
    // Copyright 2024 Google LLC
    // SPDX-License-Identifier: Apache-2.0
    #
    'label: {
        break 'label;
        println!("This line gets skipped");
    }
    
最后修改 August 11, 2026: 更新 (70a5af133)