gpt4 book ai didi

enums - 合并两个Option实例的惯用方式是什么?

转载 作者:行者123 更新时间:2023-12-03 11:45:11 25 4
gpt4 key购买 nike

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

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),
};
如果要在均为 xor的情况下获取 None,则也有 Some方法。

关于enums - 合并两个Option实例的惯用方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62753230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com