枚举可以是泛型的,比如:
enum Option<T> {
None,
Some(T)
}
enum Result<T, E> {
Ok(T),
Err(E)
}
泛型枚举的语法和泛型结构体一样。
二叉树结构
// An ordered collection of `T`s.
enum BinaryTree<T> {
Empty,
NonEmpty(Box<TreeNode<T>>)
}
// A part of a BinaryTree.
struct TreeNode<T> {
element: T,
left: BinaryTree<T>,
right: BinaryTree<T>
}
类似Option<Box<T>>,Rust消除了枚举的标记位,因此一个BinaryTree值只占用一个字的大小???
访问枚举里面的数据的唯一方法是用模式匹配。
