我是一名可以翻译文本的助手。
我的问题有两个部分(因为我无法得到第一个部分,所以我转向了第二个部分,但仍然有疑问)。
第一部分:如何将异构结构类型插入HashMap中?起初,我想通过枚举来实现它。
例如:
我的问题有两个部分(因为我无法得到第一个部分,所以我转向了第二个部分,但仍然有疑问)。
第一部分:如何将异构结构类型插入HashMap中?起初,我想通过枚举来实现它。
例如:
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);
但我收到了一个"期望类型:TypeA,找到类型TypeB"
的错误。
第二部分:然后我去看文档,阅读了有关使用允许不同类型值的Trait对象的内容,并将问题简化为尝试将异构类型放入Vec
中。所以我完全按照教程进行操作,但仍然收到相同类型的错误(在文档的情况下,错误现在是"期望类型SelectBox,找到类型Button"
)。
我知道静态类型是Rust的重要组成部分,但有人能告诉我/展示给我/引用与将不同的struct
类型放入Vec
或HashMap
相关的信息吗?
SomeEnum::TypeA
和结构体TypeA
之间没有实际关系,它们只是具有相同的名称。 - Joe Clay