当前位置: 首页 > 知识库问答 >
问题:

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

柴博
2023-03-14

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

实例

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 = /* ? */;

共有1个答案

谭裕
2023-03-14

这就是(和或_else)方法的作用:

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

还有一个xor方法,如果您想在两者都是一些时获得

 类似资料:
  • 问题内容: 我们有两个PHP5对象,并希望将其中一个的内容合并到第二个中。它们之间没有子类的概念,因此以下主题中描述的解决方案不适用。 备注: 这些是对象,而不是类。 对象包含很多字段,所以 foreach 会很慢。 到目前为止,我们考虑将对象A和B转换为数组,然后在重新转换为对象之前使用 array_merge() 合并它们,但是我们不能为此感到骄傲。 问题答案: 如果您的对象仅包含字段(没有方

  • 本文向大家介绍Java中合并两个集合的方法,包括了Java中合并两个集合的方法的使用技巧和注意事项,需要的朋友参考一下 要在JAVA中合并两个集合,代码如下所示的− 示例 输出结果 名为Demo的类包含名为“set_merge”的函数,该函数使用“addAll”函数合并作为参数传递给函数的两个集。 在main函数中,定义了两个集合,并使用‘addAll’函数将元素添加到其中。 控制台上会打印相关消

  • 我有一个稍微奇怪的界面要使用ByteBuddy实现。假设它看起来像这样: 在?假设我已经定义了类型的字段,并且: 我需要的实现来设置这个字段和 我需要的实现来调用一些方法(让我们假装它是)在存储在此字段中的上并返回其结果 我知道方法,它采用(如您所见)单个。对于getter/setter对,这非常有效,因为您可以传入,并且将生成两个方法:getter和setter。(这不适用于我的情况:我需要两个

  • 问题内容: 如何在Java中构建URL或URI?有没有惯用的方法,还是图书馆很容易做到这一点? 我需要允许从请求字符串开始,解析/更改各种URL部分(方案,主机,路径,查询字符串),并支持添加和自动编码查询参数。 问题答案: 使用HTTPClient效果很好。

  • 本文向大家介绍Python中实现两个字典(dict)合并的方法,包括了Python中实现两个字典(dict)合并的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中实现两个字典(dict)合并的方法,分享给大家供大家参考。具体方法如下: 现有两个字典dict如下: 合并两个字典得到类似: 方法1: 方法2: 方法2等同于: 或者: 方法2比方法1速度快很多,用timeit测

  • 本文向大家介绍什么是惯例配置?相关面试题,主要包含被问及什么是惯例配置?时的应答技巧和注意事项,需要的朋友参考一下 所谓的惯例配置,便是框架的自带的配置文件。该文件在核心框架目录下的convention.php中,配置内容如下。由于该文件属于框架自带的配置文件,在实际的开发过程中,主要给我们做参考实例使用,我们很少去修改该文件的配置内容,更多的是根据需求来按照惯例配置中的字段定义和注释来在模块或者