3
我怎樣才能‘加’一flatten()
方法Option<U>
,那樣只會類型檢查,當且僅當U
是Option<T>
,或者更簡單地將其添加?到Option<Option<T>>
天真,我想寫以下,根本不能編譯:生鏽,如何「加」'扁平化」,以選擇<Option<T>>?
impl Option<Option<T>> {
fn flatten(&self) -> Option<T> {
match self {
None => None,
Some(v) => v,
}
}
}
fn main() {
let x = Some(Some(1));
let y = x.flatten();
println!("{:?}", y);
}