首页 > 解决方案 > 匹配Rust中枚举数据内的字段?

问题描述

假设我有枚举:

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


struct Buzz {}

有没有办法匹配是否baz存在None

如何匹配 Rust 中的结构字段?似乎不起作用,因为 Rust 解释

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

作为baz: Bar重命名。

标签: rustpattern-matching

解决方案


的反面NoneSome

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

推荐阅读