100个Rust练习:从语法到并发的完整训练路径
2026/9/18 22:57:18 网站建设 项目流程

100个Rust练习:从语法到并发的完整训练路径

【免费下载链接】100-exercises-to-learn-rustA self-paced course to learn Rust, one exercise at a time.项目地址: https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust

100-exercises-to-learn-rust 是一个自定进度的 Rust 课程:100 个小练习各对应一个 Rust 概念,你通过补全代码、让随附测试通过来学习。无需任何 Rust 基础,适合有其它语言经验、想系统入门 Rust 的程序员。

📝 练习体系:100 个独立 Cargo 项目

课程主体在 exercises/ 下,按 8 个模块组织。每个练习都是一个独立 Cargo 项目:lib.rs里用TODOtodo!()__标出需要写代码的位置,#[cfg(test)]块中附带一组固定测试——你只改被测代码、不改测试本身,cargo test既是验收器也是答案核对器。

模块顺序即难度顺序,每个概念都在前一个模块的基础上展开:

exercises/ ├── 01_intro/ # 注释、函数、第一个程序 ├── 02_basic_calculator/ # 整数、分支、循环、溢出 ├── 03_ticket_v1/ # 结构体、所有权、可见性 ├── 04_traits/ # trait、Clone/Copy/Drop ├── 05_ticket_v2/ # 枚举、Option/Result、错误处理 ├── 06_ticket_management/ # Vec、迭代器、生命周期、Map ├── 07_threads/ # 线程、通道、Mutex └── 08_futures/ # async、runtime、取消

每个模块以 outro 集成测试收尾,把该模块学过的概念(如 ticket_v1 收尾测试中的订单校验)拼成一次综合验证。

📚 配套文档与辅助工具

book/src/ 是一本完整的 mdBook 教程,每个练习对应其中一页。它的价值在于:卡住时不用上网搜,直接翻对应页就能看到"这个概念为什么存在、编译器规则背后的动机",而不是只给一段 API 说明。

helpers/ 是练习共享的公共代码:common提供overly_long_title这类测试数据,ticket_fields提供票务标题/描述的校验逻辑,后续模块的测试直接依赖它们——读测试代码时顺手就能看懂这些工具函数。

🚀 跑通第一个 Rust 练习

  1. 安装 Rust 工具链(已有 rustup 可跳过):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. 克隆课程仓库:
git clone https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust
  1. 进入第一个练习目录,跑测试看失败用例:
cd 100-exercises-to-learn-rust/exercises/01_intro/00_welcome && cargo test
  1. src/lib.rs"I'm ready to __!"__换成测试期望的文本,重跑cargo test变绿后进入01_syntax

🔧 新手高频的 Rust 编译报错排查

函数签名报类型缺失

  • 现象:01_syntax练习默认编译不过。
  • 原因:Rust 不会为函数参数推断类型,每个形参都要显式标注。
  • 解法:按返回类型补上a: u32, b: u32;编译错误信息会指出具体行号,照着改即可。

ownership 相关的 moved value 报错

  • 现象:在03_ticket_v1写 setter 或构造逻辑时提示 value moved / cannot assign。
  • 原因:Rust 默认移动语义,变量被赋值或传参后原值失效。
  • 解法:值类型用clone(),或改成传&/&mut引用;原理见 ownership 章节。

校验 panic 看起来像 bug

  • 现象:带#[should_panic]的测试失败。
  • 原因:课程 v1 风格要求构造器校验输入,对空标题等非法值主动 panic。
  • 解法:在构造前加校验分支,测试就是直接断言 panic 会发生。

🧭 完成 100 个练习后往哪走

  • 参考书末 going_further.md 列出的 rustlings、exercism Rust 轨道等资源继续刷题
  • 对照仓库 solutions 分支,逐题对比你的实现与官方解法
  • 选一个目标域(CLI、后端、嵌入式)挑一个真实小项目动手
  • 若对并发不自信,重做07_threads08_futures两个模块

【免费下载链接】100-exercises-to-learn-rustA self-paced course to learn Rust, one exercise at a time.项目地址: https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询