1 个不稳定版本
0.1.0 | 2024年4月24日 |
---|
#3 in #transpose
4KB
optional_transpose
一个小crate,为.transpose()
添加到Option<Option<T>>
,允许你可逆地交换成对内部和外部选项,这样你可以在内部选项上使用?
示例
use optional_transpose::OptionTranspose;
fn example() -> Option<i32> {
let x: Option<Option<i32>> = Some(None);
let y: Option<i32> = x.transpose()?; // Returns None, as the inner option is None
Some(1)
}
assert_eq!(example(), None);
lib.rs
:
optional_transpose
一个小crate,为.transpose()
添加到Option<Option<T>>
,允许你可逆地交换成对内部和外部选项,这样你可以在内部选项上使用?
示例
use optional_transpose::OptionTranspose;
fn example() -> Option<i32> {
let x: Option<Option<i32>> = Some(None);
let y: Option<i32> = x.transpose()?; // Returns None, as the inner option is None
Some(1)
}
assert_eq!(example(), None);