2个版本 (1个稳定版)
1.0.0 | 2020年5月2日 |
---|---|
0.1.0 | 2020年5月2日 |
#2092 in Rust模式
每月22次下载
5KB
take-if
一个从Option
中条件性地取出内容的微型实用工具。另请参阅Option::take
。
use take_if::TakeIf;
let mut maybe_greeting = Some("Hello, World!");
if let Some(greeting) = maybe_greeting.take_if(|greeting| greeting.starts_with("Hello")) {
println!(r#"Greeting {:?} starts with "Hello""#, greeting);
} else {
println!(r#"There was no greeting, or it didn't start with "Hello""#);
}
用法
将take-if添加到您的Cargo.toml
[dependencies]
take-if = "1.0.0"
在您的模块中导入TakeIf
特质,以将take_if
方法添加到Option
use take_if::TakeIf;
let taken = maybe_value.take_if(|value| value.id == 5);
lib.rs
:
从option中条件性地取出一个值。
此crate向Option
添加了take_if
扩展方法,该方法条件性地从option中取出值,如果取出了值,则在该位置留下None
。只有当option是Some
时,才会调用谓词函数,并且接收option内容的引用。
如果您不需要条件性地取出值,即您总是需要取出值,请使用Option::take
代替。
示例
use take_if::TakeIf;
let mut maybe_greeting = Some("Hello, World!");
if let Some(greeting) = maybe_greeting.take_if(|greeting| greeting.starts_with("Hello")) {
println!(r#"Greeting {:?} starts with "Hello""#, greeting);
} else {
println!(r#"There was no greeting, or it didn't start with "Hello""#);
}