具有生命周期的循环意味着什么?

时间:2018-05-23 07:17:24

标签: loops rust break lifetime

我正在查看一些Rust代码并看到了类似的内容:

'running: loop {
    // insert code here
    if(/* some condition */) {
        break 'running;
    }
}

"标签"是什么意思?一生的循环?这样做有什么好处和不同之处:

loop {
    // insert code here
    if(/* some condition */) {
        break;
    }
}

1 个答案:

答案 0 :(得分:6)

<强> Loop labels

  

您可能还会遇到嵌套循环和需要的情况   指定break或continue语句用于哪一个。喜欢   大多数其他语言,Rust的休息或继续适用于最里面的   环。在你想要打破或继续一个的情况下   在外部循环中,您可以使用标签来指定中断循环   或继续声明适用于。

     

在下面的例子中,我们继续下一次外循环迭代   当x是偶数时,我们继续下一个内循环迭代   当y是偶数时。所以它会执行println!当x和y都是   奇

'outer: for x in 0..10 {
    'inner: for y in 0..10 {
        if x % 2 == 0 { continue 'outer; } // Continues the loop over `x`.
        if y % 2 == 0 { continue 'inner; } // Continues the loop over `y`.
        println!("x: {}, y: {}", x, y);
    }
}