这个仓库记录 Rust 的渐进式学习过程,内容从基础语法、所有权和生命周期,逐步延伸到异步运行时、Future、Waker 与自定义定时器。
示例按照编号排列。相邻文件通常只引入一个新概念,适合依次阅读并对照运行结果。
| 目录或文件 | 内容 |
|---|---|
01_Base |
变量、函数、控制流、所有权、结构体、枚举、集合、模块、错误处理、泛型、trait、生命周期、闭包与迭代器 |
02_Asynchronous |
同步、多线程、async/.await、Future::poll、Waker 和自定义定时器 |
next.md |
后续学习路线与实践方向 |
src/main.rs |
当前阶段的综合异步示例 |
从 01_Base/00_test.rs 开始,按照文件编号依次阅读。
其中建议重点理解:
- 所有权、移动、借用与可变引用;
- 枚举、模式匹配和错误处理;
- 泛型、trait 与生命周期;
- 闭包、迭代器及惰性求值。
先阅读 02_Asynchronous/00_Notion.md,然后按照示例编号继续。更完整的原理说明位于 02_Asynchronous/05_Further_Understanding.md。
async_07_custom_future会一直等待,async_08_waker会持续自我唤醒。这两个示例用于观察Poll::Pending和Waker,不会自行结束,运行后需要按Ctrl+C停止。
- Rust stable,支持 Rust 2024 Edition;
- Cargo;
- Tokio 1.x(由 Cargo 自动安装)。
查看本机版本:
rustc --version
cargo --versiongit clone https://github.com/QwQBiG/Go-learn-Rust.git
Set-Location -LiteralPath ".\Go-learn-Rust"
cargo check --all-targets
cargo test --all-targets运行当前综合示例:
cargo run运行某个基础章节:
cargo run --example base_04_ownership
cargo run --example base_12_lifetimes运行某个异步章节:
cargo run --example async_01_sync
cargo run --example async_04_async
cargo run --example async_10_final查看所有可运行目标:
cargo metadata --no-deps --format-version 1- 文件名前的编号代表推荐学习顺序。
- 示例优先保持概念清晰,不追求过早抽象或合并代码。
- Rust 代码遵循
rustfmt的主体格式;行尾说明采用代码 // 注释的形式。 - 文本文件统一使用 UTF-8 编码和 LF 换行符。