type
Post
date
Nov 1, 2025
slug
Rust/notebook/6
summary
学习下 Rust 圣经,记录笔记
status
Published
tags
Rust
category
技术茶点
icon
password
本章讲解了枚举(enum)的定义与使用,包括如何通过变体表达数据、使用
Option 表示可空值,并通过 match 与 if let 实现模式匹配与简洁的分支处理。6.枚举和模式匹配
6.1.枚举的定义
- 与结构体的区别和优势
6.2.match 控制流结构
- 解析 :: 和 .
用法 | 含义 | 示例 |
:: | 访问命名空间(类型、模块、枚举)里的内容 | String::from("abc")、IpAddr::V4(...) |
. | 访问实例对象的方法或字段 | s.len()、point.x |
- 解析let five = Some(5)——带“可能为空”的语义
写法 | 含义 | 类型 | 是否可能为空 |
let five: u8 = 5; | 普通整数 | u8 | ❌ 不可能为空 |
let five = Some(5); | 有值的 Option | Option<i32> | ✅ 可能为空(与 None 对应) |
let none: Option<i32> = None; | 空的 Option | Option<i32> | ✅ 空 |
6.3.if let 和 let else 简洁控制流
- 解释
- ✅
if let是match的单分支简写,用于“只关心一种情况”。 - ✅
let else是控制流语法糖,用于“失败就提前返回”。 - ✅
let else的else块必须让当前作用域提前结束(不能只是打印)。 - ✅ 匹配模式中的变量会在
if let/let else通过后进入作用域。 - ✅ 当有多分支逻辑时用
match;当逻辑线性时用let else。
特性 | if let | let else |
目的 | 匹配成功时执行语句 | 匹配失败时提前退出 |
使用位置 | 任意表达式中 | 通常用于函数内部的逻辑开始处 |
else 部分 | 可选(表示匹配失败) | 必须有(处理失败) |
返回要求 | 不要求 | else 必须“提前结束作用域”(如 return, break, panic! 等) |
最佳用途 | 可选值处理 | 结构性早退(减少嵌套) |
- Author:沈林曦
- URL:https://blog.aibhtt.com/article/Rust/notebook/6
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts












