在 Rust 中匹配枚举数据中的字段?

问题描述

假设我有枚举:

enum Foo {
    Bar {baz: Option<Buzz> },}


struct Buzz {}

有没有办法匹配baz是否为None

How to match struct fields in Rust? 似乎不起作用,因为 Rust 解释了

match foo {
    Foo::Bar { baz: Buzz } => {
    },Foo::Bar { baz: None } => {
    }
}

baz: Bar 作为重命名

解决方法

None 的反义词是 Some

let foo = Foo::Bar{ baz: None };
match foo {
    Foo::Bar{ baz: Some(_) } => println!("Bar with some"),Foo::Bar{ baz: None } => println!("Bar with none"),}