从循环返回值

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

fn main() {
    let mut counter = 0;

    let result = loop {
        counter += 1;

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

    assert_eq!(result, 20);
}