如何在模式匹配中忽略结构体枚举变量的成员?

12

如何从以下代码中移除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'

但我找不到任何文件说明如何忽略结构体的个别成员。

Rust Playground上的代码


顺便说一下,不需要写 let x: i32 = - 这个类型会被推断出来,你可以直接写 let x = - Shepmaster
1个回答

19
我知道可以使用以下方式忽略某个结构体成员之后的所有内容:
..不是表示位置,而是表示“所有其他字段”:
Foo::Bar { b, .. } => b * b,

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接