合并两个Option实例的惯用方法是什么



合并两个枚举实例的可选字段值的惯用方法是什么?

示例

enum Foo {
Bar { a: Option<i32>, b: Option<i32> },
}
let var_1 = Foo::Bar {
a: Some(10),
b: None,
};
let var_2 = Foo::Bar {
a: None,
b: Some(5),
};
// Should result in Foo::Bar { a: Some(10), b: Some(5) }
let var_3 = /* ? */;

这就是or(和or_else(方法的作用:

let var_3 = Foo::Bar {
a: var_1.a.or(var_2.a),
b: var_1.b.or(var_2.b),
};

如果你想在两者都是Some的情况下得到None,还有一个xor方法。

相关内容

最新更新