我如何为“Option<U>”添加一个“flatten()”方法,该方法仅在“U”是“Option<T>”时才进行类型检查,或更简单地将其添加到“Option<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);
}
Option<Option<T>>
类型有一个 flatten 函数。 - proc