Rust 获取枚举的基础变量
我的简化代码:Rust 获取枚举的基础变量,rust,Rust,我的简化代码: enum MyEnum { A(u32), B(String), C(i32), } pub struct MyStruct { aa: String, bb: u16, my_enum: MyEnum, } let my_struct1 = MyStruct { /*...*/ }; 如何获取my_struct1.my_enum的基础变量,该变量可以是u32、String或i32。是否仅通过模式匹配?模式匹配不限于match
enum MyEnum {
A(u32),
B(String),
C(i32),
}
pub struct MyStruct {
aa: String,
bb: u16,
my_enum: MyEnum,
}
let my_struct1 = MyStruct { /*...*/ };
如何获取
my_struct1.my_enum
的基础变量,该变量可以是u32
、String
或i32
。是否仅通过模式匹配?模式匹配不限于match
。若您只关心一种类型的变体,您也可以这样做
if let MyEnum::B(s) = my_struct1.my_enum {
println!("{}", s);
}
只有当
my_struct1.my_enum
的值实际上是MyEnum::B
类型时,才会运行println
行。Rustenum
是安全的。它不像Cunion
,无论值实际是哪种类型,您都可以根据自己的意愿不安全地访问基础值。如果它们都具有相同的基础类型,比如像A一样的u32,那么如何获取该变量?@OskarK。然后您需要使用match
:让v=match my_struct1.my_enum{MyEnum::A(A)=>A,MyEnum::B(B)=>B,MyEnum::C(C)=>C}代码>。涵盖以下主题:、和。