系列: Rust 精进之路:构建可靠、高效软件的底层逻辑
作者: 码觉客
发布日期: 2025年4月20日
引言:当值拥有“选项”——超越结构体的表达力
在上一篇【结构体 Struct】中,我们学习了如何使用结构体将多个相关的数据字段组合成一个有意义的整体。结构体非常适合表示那些同时具有多个属性的事物,比如一个用户同时拥有用户名、邮箱和登录次数。
但是,现实世界中还有很多情况,一个值可能是多种不同可能性中的一种。例如:
- 一个 IP 地址,要么是 IPv4 版本,要么是 IPv6 版本。
- 一个图形界面事件,可能是鼠标点击、键盘按下、窗口大小改变等等中的一种。
- 一个操作的结果,可能是成功并带有结果数据,也可能是失败并带有错误信息。
对于这种“或”关系(一个值是 A 或 B 或 C),结构体就显得力不从心了。这时,Rust 提供了另一个强大的自定义数据类型工具——枚举 (Enumeration,简称 Enum)。
枚举允许你定义