Rustのloopのbreakで値を返す

ループ処理の中で成功した値だけを取り出したい。whileでは返せないし、std::iter::findではいけるだろうが、Futureを処理する必要がある場合は活用できない(findで処理させる場合中でawaitを使えない。処理する場合はStreamにしてFutureをすべて解決にしてから回すことになるから)の時に困るわけですが、loopbreak fooとして値を返せるようだ。

let mut i = 0;

assert_eq!(
    loop {
        i += 1;
        if i == 10 {
            break i;
        }
    },
    10
);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA