一、基础语法(入门必学)
- 开发环境:
rustup、cargo(new/build/run/check/test/doc)、crates.io - 变量与可变性:
let、mut、常量const、静态变量static、隐藏(shadowing) - 基础数据类型
- 标量:整数(i/u系列)、浮点数(f32/f64)、bool、char
- 复合:元组tuple、数组array、切片slice
&[T]
- 注释、格式化输出
println!、format! - 控制流:
if、loop/while/for、break带返回值、标签循环 - 函数:参数、返回值、表达式(无分号)、函数指针
- 所有权核心基础(Rust 灵魂)
- 所有权规则、移动语义move、拷贝Copy、克隆clone
- 借用 &T、可变借用 &mut T、借用检查器、悬垂引用dangling reference
- 借用规则:同一时间,只能一个可变借用 / 多个不可变借用,不能混用
- 切片:字符串切片
&str、数组切片,理解String和&str区别
二、核心类型与集合
String:创建、追加、索引误区、遍历、UTF-8- 集合容器:
Vec<T>、HashMap<K,V>、HashSet、BTreeMap/BTreeSet - 结构体 struct:普通结构体、元组结构体、单元结构体、方法
impl、关联函数 - 枚举 enum:基础枚举、带数据枚举、
Option<T>、Result<T,E>(重中之重) match匹配、模式匹配、if let / while let、解构、_通配符- 错误处理
- 可恢复错误:
Result、?运算符、unwrap/expect - 不可恢复:
panic!、backtrace
- 可恢复错误:
三、生命周期(难点)
- 生命周期标注
<'a>,生命周期参数含义 - 生命周期省略规则(elision)
- 结构体/枚举上绑定生命周期
- 静态生命周期
'static - 理解:生命周期只是编译器校验标记,不改变运行期
四、Trait 特征(多态核心)
- trait 定义、实现 trait、默认方法
- trait 作为参数(impl Trait)、trait 对象
dyn Trait(动态分发) - 泛型 + trait bound(
T: Trait1 + Trait2)、where 子句 - 孤儿规则:外部trait不能给外部类型实现
- 常用标准库Trait:
Debug、Display、Clone、Copy、Default、PartialEq/Eq、PartialOrd/Ord、Into/From
- 关联类型 associated types
五、泛型
- 泛型函数、泛型结构体、泛型枚举
- 泛型单态化 monomorphization(编译期展开,无运行开销)
六、模块与包管理
- 模块 module
mod、可见性pub - 路径:绝对路径、相对路径、
super、crate use导入、别名as、pub use重导出- Cargo.toml:依赖、版本、特性features、工作空间workspace
- 二进制包 / 库包区别
七、智能指针(堆分配、特殊所有权)
Box<T>:堆分配,最简单智能指针Rc<T>:单线程引用计数,clone增加计数RefCell<T>:内部可变性(interior mutability),运行时借用检查Rc<RefCell<T>>组合用法Arc<T>:多线程安全引用计数Mutex<T>、RwLock<T>(同步原语,后面并发也要用)
八、闭包与迭代器
- 闭包语法、捕获规则(move/引用/可变引用)、闭包类型 Fn/FnMut/FnOnce
- 迭代器 Iterator trait,
next() - 适配器:map/filter/flat_map/zip/enumerate/collect等
- 迭代器是懒执行
九、并发编程(Rust强项)
- 线程
std::thread::spawn、move闭包捕获 - 通道channel:
std::sync::mpsc多生产者单消费者 - 同步原语:
Mutex<T>、RwLock<T>、Condvar Arc<T>+ 锁 共享跨线程数据- Send / Sync trait:线程安全标记,理解什么类型不满足Send/Sync
- 无锁基础概念(可选进阶)
十、进阶语法&标准库高频
- 宏 macro
- 声明宏
macro_rules!、过程宏proc-macro(derive/attribute/function-like) - 常用派生宏
#[derive(xxx)]
- 声明宏
- unsafe Rust(重点:知道什么时候必须unsafe,谨慎使用)
- 裸指针 *const T / *mut T
- 调用unsafe函数、实现unsafe trait
- 不安全块,unsafe的五个场景
- 异步 async/.await(后端必学)
- Future trait、Executor执行器
- tokio 生态(主流)、多任务、spawn、join!、select!
- async 生命周期、Pin、Stream
- 类型转换:
as强转、From/Into、TryFrom/TryInto - 类型别名 type、newtype模式(封装)
十一、工程实践 & 生态
- 测试:单元测试 #test、集成测试、doc-test文档测试
- 错误最佳实践:thiserror(自定义错误)、anyhow(快速错误上下文)
- 日志:tracing / log
- Serde:序列化反序列化(json等)
- 常用框架:
- Web:Axum(主流)、Actix-web
- CLI:clap
- 数据库:sqlx
- 性能调优:cargo bench、profiling、内存模型
- 安全习惯:避免滥用unsafe、最小可变、优先组合而非继承
十二、底层进阶(内核/高性能方向,可选)
- 内存布局:repr©/repr(packed)、对齐align
- FFI:调用C代码、给C提供Rust库
- 内存分配器、no_std 无标准库开发(嵌入式、内核)
- 裸机、中断(嵌入式Rust)