本文簡要介紹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 Try.from_output用法及代碼示例
- Rust TryIter用法及代碼示例
- Rust Try用法及代碼示例
- Rust TryFrom用法及代碼示例
- Rust TcpStream.local_addr用法及代碼示例
- Rust TcpStream.peer_addr用法及代碼示例
- Rust TcpListener.take_error用法及代碼示例
- Rust Take.limit用法及代碼示例
- Rust TcpStream.set_nodelay用法及代碼示例
- Rust ToSocketAddrs用法及代碼示例
- Rust TcpStream.nodelay用法及代碼示例
- Rust ToOwned.to_owned用法及代碼示例
- Rust TcpListener.into_incoming用法及代碼示例
- Rust TcpStream.take_error用法及代碼示例
- Rust TcpListener.accept用法及代碼示例
- Rust ThreadId用法及代碼示例
- Rust Take.set_limit用法及代碼示例
- Rust Thread.unpark用法及代碼示例
- Rust TcpStream.write_timeout用法及代碼示例
- Rust TcpListener.local_addr用法及代碼示例
- Rust Take.get_ref用法及代碼示例
- Rust TcpStream.peek用法及代碼示例
- Rust TcpStream.set_write_timeout用法及代碼示例
- Rust TcpListener.ttl用法及代碼示例
- Rust TcpStream.set_nonblocking用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::ops::Try.branch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。