【Rust】7. 枚举和模式匹配

7.1 枚举(可存储不同类型的值)

7.1.1 基本概念

在这里插入图片描述
在这里插入图片描述

7.1.2 枚举的简洁用法:构造函数

在这里插入图片描述

7.1.3 枚举的优势:处理不同类型和数量的数据

  • 枚举成员的类型:字符串数字类型结构体枚举
  • 注意:在未将标准库枚举引入当前作用域中时,可以创建与标准库中同名的枚举!

在这里插入图片描述
在这里插入图片描述

7.1.4 在枚举中定义方法

在这里插入图片描述

7.2 Option 枚举

  • T 表示不会存在空值的情况;Option<T> 表示存在空值的情况,需要考虑对空值的处理
  • Option<T>T 是不同类型的,无法直接进行计算(也就是说,在对 Option<T> 进行运算之前必须将其转换为 T
  • Option 已经引入 prelude 中,无需前缀 Option::,可直接使用 SomeNone

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 match 控制流结构

7.3.1 match 基础

  • match 的分支组成结构:匹配模式 Coin::Penny + => + 代码块{some_code} 组成;match 可以有多个分支
  • match 的匹配模式类型:字面值、变量、通配符、其他内容
  • 每个分支相关联的代码作为一个表达式,而表达式的结果值将作为整个 match 表达式的返回值
  • 如果想要在分支中运行多行代码,可以使用大括号,而分支后的逗号是可选的

在这里插入图片描述
在这里插入图片描述

7.3.2 match 绑定值的模式

在这里插入图片描述

7.3.3 match 匹配 Option<T>

在这里插入图片描述

7.3.4 match 必须是穷尽的

在这里插入图片描述

7.3.5 match 中的通配模式和 _ 占位符

  • 需要利用变量:通配模式 other => fn(other),,且必须作为最后一个分支
  • 不需要利用变量_ 占位符,_ => fn(),
  • 不需要利用变量,且不做任何事_ => (),,返回单元值

在这里插入图片描述
在这里插入图片描述

7.4 if let 简洁控制流

  • if let:只匹配一个模式的值而忽略其他模式的情况
  • if let xxx else xxx:匹配**两个模式(两种情况)**的值,并分别处理

在这里插入图片描述
在这里插入图片描述

7.5 小结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值