當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Try.branch用法及代碼示例


本文簡要介紹rust語言中 std::ops::Try.branch 的用法。

用法

fn branch(self) -> ControlFlow<Self::Residual, Self::Output>

? 中用於決定操作符是應該產生一個值(因為這返回了 ControlFlow::Continue )還是將一個值傳播回調用者(因為這返回了 ControlFlow::Break )。

例子

#![feature(try_trait_v2)]
use std::ops::{ControlFlow, Try};

assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));
assert_eq!(Err::<String, _>(3).branch(), ControlFlow::Break(Err(3)));

assert_eq!(Some(3).branch(), ControlFlow::Continue(3));
assert_eq!(None::<String>.branch(), ControlFlow::Break(None));

assert_eq!(ControlFlow::<String, _>::Continue(3).branch(), ControlFlow::Continue(3));
assert_eq!(
    ControlFlow::<_, String>::Break(3).branch(),
    ControlFlow::Break(ControlFlow::Break(3)),
);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::ops::Try.branch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。