<分区>
我的问题分两部分(第一部分没搞定,所以转到第二部分,还是有问题)
第 1 部分:如何将异构 struct
类型插入到 HashMap
中?起初我想通过 enum
例如,
enum SomeEnum {
TypeA,
TypeB,
TypeC,
}
struct TypeA{}
struct TypeB{}
struct TypeC{}
let hm = HashMap::new();
hm.insert("foo".to_string(), SomeEnum::TypeA);
hm.insert("bar".to_string(), SomeEnum::TypeB);
hm.insert("zoo".to_string(), SomeEnum::TypeC);
但是我得到了一个“Expected type: TypeA, found type TypeB”
错误
第 2 部分:然后我去了文档并阅读了 Using Trait Objects that Allow for Values of Different Types ,并将问题简化为仅尝试将异构类型放入 Vec
中。所以我完全遵循了教程,但我仍然遇到相同类型的错误(在文档的情况下,错误现在是“Expected type SelectBox, found type Button”
.
我知道静态类型是 Rust 的重要组成部分,但是谁能告诉我/告诉我/推荐我任何与将不同的 struct
类型放入 Vec
中相关的信息> 或 HashMap
。