从循环中返回

loop 的一种用法是重试操作直到成功。但是,如果操作返回值,您可能需要将其传递给代码的其余部分:将其放在 break 之后,它将由 loop 表达式返回。

fn main() {
    let mut counter = 0;

    let result = loop {
        counter += 1;

        if counter == 10 {
            break counter * 2;
        }
    };

    assert_eq!(result, 20);
}