当前位置: 首页 > article >正文

enum 枚举类型

我们可以通过定义枚举IpAddrKind来表达这样的概念,声明该枚举需要列举出所有可能的IP地址种类,也就是所谓的枚举变体(variant)。

enum IpAddrKind {
    V4,
    V6,
}

枚举的变体全部位于其标识符的命名空间中,并使用两个冒号来将标识符和变体分隔开。由于IpAddrKind::V4IpAddrKind::V6拥有相同的类型IpAddrKind,所以我们可以定义一个接收IpAddrKind类型参数的函数来统一处理它们。

现在的定义只知道枚举的种类,却没有办法去存储实际的IP地址数据,只能起到一个标识的作用。但实际上,枚举允许我们在变体上嵌套数据。在新的IpAddr枚举变体中,V4V6两个变体都被关了上了一个String值:

enum IpAddr {
    V4(String),
    V6(String),
}

你可以在枚举的变体中嵌入任意类型的数据,无论是字符串、数组、还是结构体,甚至可以嵌入另一个枚举!

虽然枚举变体是不同的类型,但对外而言,它们是单独的一个类型。


Option枚举

RUST中虽然没有空值,但却提供了一个拥有类似概念的枚举,我们可以用它来标识一个值无效或者缺失,这个枚举就是Option<T>,它在标准库中的定义如下:

enum Option<T> {
    Some(T),
    None,
}

由于Option<T>枚举非常常见,所以它被包含在了预导入模块中,这意味着我们不需要显示地将它引入作用域。


http://www.kler.cn/a/157690.html

相关文章:

  • 【openssl】RSA 生成公钥私钥 |通过私钥获取公钥
  • SpringBoot——嵌入式 Servlet容器
  • 如何判别使用的junit是4还是5
  • 树莓派外接上显示器以后一直黑屏无画面显示
  • 流媒体方案之FFmpeg——实现物联网视频监控项目
  • Linux系统安装Python3环境
  • 7、Qt延时的使用
  • 解决 Xshell 无法使用 root 账户远程登录 Linux 的问题
  • ffmpeg格式转换 免费使用视频格式转换教程
  • visual studio 2022中使用vcpkg包管理器
  • Java架构师技术架构路线
  • PTA 7-226 sdut-C语言实验-矩阵输出(数组移位)
  • Mysql内联接inner join以后数据条数比原数据表多
  • 小白备战蓝桥杯:Java常用API
  • 【Wireshark工具使用】Wireshark无法抓取TwinCAT的EtherCAT包(已解决)
  • 【Windows】永久屏蔽系统更新
  • 【滑动窗口】LeetCode2953:统计完全子字符串
  • python-单词本|通讯录
  • 构建高效预约系统:预约系统源码的设计与实现
  • HTTPS的安全问题及应对方案