我使用enum进行多态,类似于以下内容:
enum MyType {
Variant1 { a: i32, b: i32 },
Variant2 { a: bool, b: bool },
}
是否有使用Variant1
和Variant2
的现有结构的干净方法?我做了以下事情:
struct Variant1 {
a: i32,
b: i32,
}
struct Variant2 {
a: bool,
b: bool,
}
enum MyType {
Variant1(Variant1),
Variant2(Variant2),
}
但感觉非常笨重。我想知道是否有更好的方法来完成类似的事情。
答案 0 :(得分:3)
有一个关于使枚举变体成为自己类型的RFC:Types for enum variants。不幸的是,它被推迟了,因为这不被视为优先事项。 这意味着,现在,您提出的方式是枚举变体类型的唯一方法。
答案 1 :(得分:1)
不,这究竟是如何运作的。