# rust-learning **Repository Path**: PhiloKun/rust-learning ## Basic Information - **Project Name**: rust-learning - **Description**: Rust 完整学习指南:31 章 + 3 附录,从入门到工程实战 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rust 完整学习指南 一份从零基础到工程实战的 Rust 中文学习指南。全文按「准备 → 基础 → 核心 → 进阶 → 工程 → 附录」六个部分组织,共 **6 篇 / 31 章 + 3 个附录**,每章一个独立的 Markdown 文件,可单独阅读,也可按顺序系统学习。 - 面向读者:有其他语言(C/C++、Java、Python、Go、JS/TS 等)基础的开发者,或从零开始的学习者 - 对标版本:Rust 2021 edition(Rust 1.70+,同时标注 2024 edition 的差异) - 学习原则:**每章都有可运行的代码示例**,建议边读边用 `cargo` 实操 --- ## 目录导航 ### 第 0 篇 · 准备篇 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | 01 | [如何阅读本指南](00-准备篇/01-如何阅读本指南.md) | 学习路线、各阶段目标、环境约定、代码示例约定 | | 02 | [Rust 语言概览与设计理念](00-准备篇/02-Rust语言概览与设计理念.md) | 三大设计目标、零成本抽象、与其他语言对比、应用场景、Edition 机制 | | 03 | [环境搭建与工具链](00-准备篇/03-环境搭建与工具链.md) | rustup / rustc / cargo / rustfmt / clippy / rust-analyzer、国内镜像、VS Code 与 CLion 配置 | ### 第 1 篇 · 基础篇 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | 04 | [Cargo 与项目结构](01-基础篇/04-Cargo与项目结构.md) | `cargo new/run/build/test`、Cargo.toml、依赖与锁文件、二进制 vs 库 | | 05 | [变量、类型与常量](01-基础篇/05-变量类型与常量.md) | 不可变绑定、遮蔽、标量/复合类型、类型推断与标注、常量与静态变量、类型转换 | | 06 | [函数、控制流与注释](01-基础篇/06-函数控制流与注释.md) | 函数与表达式、`if`/`loop`/`while`/`for`、语句 vs 表达式、文档注释 | | 07 | [所有权 Ownership](01-基础篇/07-所有权.md) | 三条规则、移动语义、Clone/Copy、栈与堆、所有权与函数 | | 08 | [引用与借用](01-基础篇/08-引用与借用.md) | 共享引用与可变引用、借用规则、悬垂引用、切片引用、NLL | | 09 | [生命周期](01-基础篇/09-生命周期.md) | 生命周期标注、省略规则、`'static`、结构体中的生命周期、高级约束 | | 10 | [字符串与切片](01-基础篇/10-字符串与切片.md) | `&str` vs `String`、UTF-8、常用方法、切片、格式化、性能建议 | ### 第 2 篇 · 核心篇 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | 11 | [结构体与方法](02-核心篇/11-结构体与方法.md) | 三种结构体、`impl`、`self`、关联函数、字段初始化简写、结构体更新语法、元组结构体、单元结构体 | | 12 | [枚举与模式匹配](02-核心篇/12-枚举与模式匹配.md) | 枚举定义、`Option`/`Result`、`match`、`if let`、`while let`、`let-else`、模式语法全解 | | 13 | [模块、包与工作区](02-核心篇/13-模块包与工作区.md) | crate/module/`mod`/`use`、`pub`、路径、重导出、workspace、可见性 | | 14 | [泛型与 Trait](02-核心篇/14-泛型与Trait.md) | 泛型函数/结构体/枚举、`trait` 定义与实现、默认方法、关联类型、泛型约束、`where`、孤儿规则 | | 15 | [常用标准库 Trait 速查](02-核心篇/15-常用标准库Trait速查.md) | `Debug/Clone/Copy/Default/PartialEq/Eq/PartialOrd/Ord/Hash/From/Into/AsRef/Index/Deref/Drop/Iterator` | | 16 | [集合类型](02-核心篇/16-集合类型.md) | `Vec`/`VecDeque`/`HashMap`/`BTreeMap`/`HashSet`/`BTreeSet`/`BinaryHeap`、entry API、选择对照表 | | 17 | [迭代器与闭包](02-核心篇/17-迭代器与闭包.md) | 闭包与三种 Fn trait、捕获、`Iterator` 适配器、惰性求值、自定义迭代器、`IntoIterator` | | 18 | [错误处理](02-核心篇/18-错误处理.md) | `panic!` vs `Result`、`?` 运算符、自定义错误、`thiserror`/`anyhow`、错误设计最佳实践 | | 19 | [智能指针与内部可变性](02-核心篇/19-智能指针与内部可变性.md) | `Box`/`Rc`/`Arc`/`RefCell`/`Cell`/`Mutex`/`RwLock`/`Weak`/`Cow`、内部可变性模式、循环引用 | ### 第 3 篇 · 进阶篇 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | 20 | [类型系统进阶](03-进阶篇/20-类型系统进阶.md) | 类型推断、DST 与 `?Sized`、newtype、类型别名、自动解引用、`impl Trait`、trait 对象与对象安全 | | 21 | [并发编程](03-进阶篇/21-并发编程.md) | `thread`、`move` 闭包、消息传递 channel、共享状态、`Send`/`Sync`、`rayon`、常见并发模式 | | 22 | [异步编程](03-进阶篇/22-异步编程.md) | `Future`、`async/await`、运行时(Tokio)、`Pin`、异步 trait、并发与取消、常见陷阱 | | 23 | [宏](03-进阶篇/23-宏.md) | `macro_rules!`、声明式宏片段类型、重复模式、派生宏/属性宏/函数式宏、卫生性、调试技巧 | | 24 | [unsafe Rust 与 FFI](03-进阶篇/24-unsafe与FFI.md) | 五类 unsafe 能力、安全抽象、裸指针、`extern "C"`、与 C 互操作、Miri、常见 UB | ### 第 4 篇 · 工程篇 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | 25 | [测试、基准与文档](04-工程篇/25-测试基准与文档.md) | 单元测试、集成测试、文档测试、断言宏、mock、覆盖率、`criterion` 基准 | | 26 | [Cargo 进阶与发布](04-工程篇/26-Cargo进阶与发布.md) | features、profile、条件编译、build script、workspaces、交叉编译、发布到 crates.io | | 27 | [性能优化与内存布局](04-工程篇/27-性能优化与内存布局.md) | 内存模型、零成本抽象、避免不必要分配、内联与 LTO、profiling 工具、优化清单 | | 28 | [代码风格、惯用法与 Clippy](04-工程篇/28-代码风格惯用法与Clippy.md) | rustfmt、命名约定、惯用法对照表、Clippy lint 分级与配置 | | 29 | [常用第三方库生态](04-工程篇/29-常用第三方库生态.md) | serde/tokio/clap/rayon/tracing/thiserror/anyhow/reqwest/sqlx/axum 等速查 | | 30 | [常见编译错误与排查](04-工程篇/30-常见编译错误与排查.md) | E0xxx 错误速查、借用检查器典型冲突与解法、调试方法论 | | 31 | [实战项目:从 CLI 到 Web 服务](04-工程篇/31-实战项目从CLI到Web服务.md) | 三个完整项目:CLI 工具、并发下载器、Web API 服务 | ### 第 5 篇 · 附录 | 编号 | 章节 | 核心内容 | | --- | --- | --- | | A1 | [关键字与运算符速查](05-附录/A1-关键字与运算符速查.md) | 严格/保留关键字、运算符优先级、格式化占位符 | | A2 | [术语表](05-附录/A2-术语表.md) | 常见术语中英对照与解释 | | A3 | [学习路径与练习题库](05-附录/A3-学习路径与练习题库.md) | 30 天计划、分级练习题、进阶资源与社区 | --- ## 快速开始 ```bash # 1. 安装工具链(详见第 03 章) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 2. 验证 rustc --version && cargo --version # 3. 创建并运行第一个项目 cargo new hello_rust && cd hello_rust && cargo run ``` ## 代码示例约定 - 所有示例默认可在 `main.rs` 中直接运行;需要依赖的示例会在文件开头给出 `Cargo.toml` 片段 - 示例中的 `// 输出: xxx` 表示 `println!` 的打印结果 - 无法编译的示例会以 `❌` 标记,用于演示常见错误 - 建议的练习统一放在每章末尾的「动手练习」小节 ## 学习建议 1. **先啃所有权(07-09 章)**:这是 Rust 的心智模型核心,卡住属正常,多写代码 2. **善用编译器**:Rust 编译器的错误提示极其友好,把它当老师而不是障碍 3. **每天一章 + 练习题**:附录 A3 提供了 30 天计划 4. **尽早读他人代码**:推荐 `ripgrep`、`bat`、`rip` 等优秀 CLI 项目的源码 祝学习顺利!🦀