Skip to content

第 08 章:引用与借用

本章代码基于 Rust 2024 Edition (Rust 1.85+) 编写

掌握 Rust 的引用机制和借用规则。

本章目标

完成本章学习后,你将掌握:

  • 理解引用与借用的概念
  • 掌握可变引用与不可变引用的区别
  • 理解借用规则和借用检查器
  • 学会处理引用相关的编译错误

章节内容

文件内容说明
引用基础核心概念引用语法、解引用、作用域
可变引用与借用规则借用规则mut引用、规则详解、悬垂引用
引用进阶高级用法引用与所有权、解引用强制
实战总结最佳实践借用规则实战技巧
借用检查器工作原理NLL、常见错误解析

借用规则速查

┌─────────────────────────────────────────────────────────────┐
│                    借用规则                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 可以有多个不可变引用                                     │
│     let r1 = &s;                                            │
│     let r2 = &s;  ✅ 同时存在                               │
│                                                             │
│  2. 可以有一个可变引用                                       │
│     let r1 = &mut s;                                        │
│     let r2 = &mut s;  ❌ 不能同时存在                       │
│                                                             │
│  3. 可变引用与不可变引用不能同时存在                         │
│     let r1 = &s;                                            │
│     let r2 = &mut s;  ❌ 不能同时存在                       │
│                                                             │
│  核心原则:引用的有效范围不能超过所有者                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘
类型说明示例
&T不可变引用let r = &x;
&mut T可变引用let r = &mut x;
*解引用*r
借用临时使用权不转移所有权

本地实验

本章示例代码位于 examples/ 目录。

bash
cargo run --example 01-reference-basics
cargo run --example 02-mutable-references
cargo run --example 03-reference-advanced
cargo run --example 04-reference-review
cargo run --example 05-borrow-checker
cargo check --examples
cargo clippy --examples