use std::collections::HashMap;
enum MyEnum {
StructVariant {
vec_data: Vec<i32>,
map_data: HashMap<String, i32>,
},
// 可以添加其他变体
OtherVariant,
}
fn main() {
let my_enum = MyEnum::StructVariant {
vec_data: vec![1, 2, 3, 4, 5],
map_data: {
let mut map = HashMap::new();
map.insert("key1".to_string(), 10);
map.insert("key2".to_string(), 20);
map
},
};
match my_enum {
MyEnum::StructVariant {
vec_data,
map_data,
} => {
let sum = vec_data.iter().sum::<i32>();
println!("Vec<i32>元素的和: {}", sum);
for (key, value) in map_data {
println!("HashMap键值对: {} -> {}", key, value);
}
}
MyEnum::OtherVariant => {
println!("匹配到其他变体");
}
}
}