合并两个枚举实例的可选字段值的惯用方法是什么?
示例
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
方法。