我正在尝试用Rust编写一个编译器,但是我在理解如何使用枚举定义类型层次结构方面遇到了问题。例如,我们有:
enum Thing {
Animal,
Plant,
}
struct Plant {
color: String,
}
enum Animal {
Dog,
Cat,
}
struct Cat {
name: String,
}
struct Dog {
name: String,
}
let x = Dog { name: john };
如果我进行模式匹配,
Dog
是否会被视为 Animal
类型(或 Thing
类型)?如何使用枚举和结构体创建此类型层次结构?我的类型层次结构具有多个深度级别。