【问题标题】:How to ignore a member of a struct-like enum variant in pattern matching?如何在模式匹配中忽略类似结构的枚举变体的成员?
【发布时间】:2016-10-28 03:05:36
【问题描述】:

如何从以下代码中删除unused_variables 警告?

pub enum Foo {
    Bar {
        a: i32,
        b: i32,
        c: i32,
    },
    Baz,
}

fn main() {
    let myfoo = Foo::Bar { a: 1, b: 2, c: 3 };
    let x: i32 = match myfoo {
        Foo::Bar { a, b, c } => b * b,
        Foo::Baz => -1,
    };
    assert_eq!(x, 4);
}

我知道我可以在某个点之后忽略结构成员:

Foo::Bar { a, .. } => // do stuff with 'a'

但我在任何地方都找不到解释如何忽略单个结构成员的文档。

Code on Rust Playground

【问题讨论】:

  • 顺便说一句,let x: i32 = 是没有必要的 - 类型会被推断出来,你可以直接说 let x =

标签: enums rust


【解决方案1】:

我知道我可以在某个点之后忽略结构成员:

.. 不是定位的。它只是意味着“所有其他领域”:

Foo::Bar { b, .. } => b * b,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2021-09-26
    • 2019-03-02
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多