当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。