type
Post
date
Nov 1, 2025
slug
Rust/notebook/6
summary
学习下 Rust 圣经,记录笔记
status
Published
tags
Rust
category
技术茶点
icon
password
😀
本章讲解了枚举(enum)的定义与使用,包括如何通过变体表达数据、使用 Option 表示可空值,并通过 matchif 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
        let else
        目的
        匹配成功时执行语句
        匹配失败时提前退出
        使用位置
        任意表达式中
        通常用于函数内部的逻辑开始处
        else 部分
        可选(表示匹配失败)
        必须有(处理失败)
        返回要求
        不要求
        else 必须“提前结束作用域”(如 return, break, panic! 等)
        最佳用途
        可选值处理
        结构性早退(减少嵌套)
      • if letmatch 的单分支简写,用于“只关心一种情况”。
      • let else 是控制流语法糖,用于“失败就提前返回”。
      • let elseelse 块必须让当前作用域提前结束(不能只是打印)。
      • ✅ 匹配模式中的变量会在 if let / let else 通过后进入作用域。
      • ✅ 当有多分支逻辑时用 match;当逻辑线性时用 let else
     
    《Rust 程序设计语言》(7/22) 《Rust 程序设计语言》(5/22)
    Loading...