带数据的枚举
enum
的元素可以有一个或多个数据类型,从而使其表现得像 C 语言中的联合。
当使用 match
对一个 enum
进行模式匹配时,可以将变量名称绑定到每个数据值。
enum
的内存细节:
- 枚举数据的内存大小等于它最大元素的大小。此举是为了让所有可能的值都能存入相同的内存空间。
- 除了元素数据类型(如果有)之外,每个元素还有一个数字值,用于表示它是哪个标签。
其他细节:
- Rust 的
enum
也被称为标签联合 (tagged-union)
- 把类型组合成一种新的类型,这就是人们所说的 Rust 具有 代数类型 的含义。