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
听说过 Rust,却总在下手前就劝退?编译器一行行红色报错、所有权这回事说不清道不明——很多开发者对 Rust 的印象就停在这里。100-exercises-to-learn-rust这套 100 个 Rust 练习项目给出的解法很朴素:别啃大文档,直接做题。它由 Rust 培训机构 Mainmatter 出品,把原本 4 天线下工作坊的内容拆成了 100 道独立练习,每道都带测试,做对了才能过关。你不需要任何 Rust 基础,只要会至少一门别的编程语言就够了。
这 100 道题目是怎么排布的
整个课程分成 8 个模块,难度严格递增:从最基础的语法,到一个会算的计算器,再进入"票务系统"的迭代开发——结构体与所有权是 v1,枚举与错误处理是 v2,然后是集合与迭代器,最后收在多线程和异步编程上。
每个练习目录就是一个独立的 Cargo 包,里面有三样东西:写在src/lib.rs里的题目说明和待修代码、一套自动验证的测试、以及可选的集成测试。配套的讲解文档放在 book/src/ 下,章节编号和练习一一对应,哪题卡住就翻哪篇。
这种"一题一包"的设计有个好处:任何时候你都能精确说出自己做到哪里,进度不用凭感觉。
五分钟跑通第一个练习
先把仓库拉到本地:
git clone https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rustRust 工具链方面,用 rustup 安装即可:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh装完后进任意练习目录,比如exercises/01_intro/01_syntax/,跑一下cargo test。你会发现函数签名是错的、类型也没写全——这正是题目要求你修的地方。修好测试转绿,第一个练习就算过了。
项目还配了一个叫wr的小工具(workshop runner 的缩写),装好后在仓库根目录运行,它会帮你按顺序验证每一关,没过当前题就不许进下一题。另外作者建议你在一个自己的分支上做,方便随时回看或重置进度。
编辑器选一个带 Rust 支持的:VS Code 装 rust-analyzer,或者直接用 JetBrains 的 RustRover,代码补全和实时报错能让你少走不少弯路。
卡住了怎么排查:从红字到绿钩
先说一个反直觉的点:编译器报错不算坏事。练习代码里自己都写了"Rust 编译器是你的结对伙伴",它的错误信息通常已经指明了方向——类型不匹配、变量被移动、生命周期不够,读完报错本身往往就够你改对。
排查顺序可以固定成三步:
- 逐字读编译器的报错和它指的行号,把上下文看清楚;
- 对照 book/src/ 里对应章节,例如所有权的题就去读 03_ticket_v1 的 ownership 一节;
- 测试挂了的话,用
cargo test -- --nocapture看完整输出,再往函数里加println!观察实际执行到了哪一步。
实在想不通也别硬扛,仓库的 solutions 分支里有全部练习的参考答案,看一眼再自己重写一遍,比抄一遍强得多。
每天 2~3 关,怎么把节奏守住
别跳题。8 个模块环环相扣,04 的 traits 没吃透,05 的枚举和错误处理就会变成天书;而 07、08 的线程与 async 又建立在前面的所有权和生命周期之上。按 01 到 08 的顺序走,是最省力的路线。
两个保持手感的小习惯:
- 每天 2~3 关,宁可少不可断,把每关的关键点记一句话进笔记,周中抽空回看一次;
- 做完就提交 Git。这既是进度快照,也是天然的"存档点",某关卡死时可以从上一个稳定点重新来。
遇到性能或并发相关的题目(集中在 07_threads 里),可以cargo run --release对比一下 release 模式的差异,顺便感受一下溢出检查这些配置项的实际影响。
练完之后,往哪走
做完这 100 关,你对语法、类型系统、标准库和基础生态都有了肌肉记忆,接下来值得做三件事:找一个 Rust 开源项目,从修小 bug 读注释开始;给自己定一个小项目,CLI 工具或 Web 服务都行,把 8 个模块的知识串成一条线;然后按兴趣钻一个深水区,嵌入式、WebAssembly 或者区块链都是热门方向。有余力的话去读标准库源码,你会发现这套练习里讲过的 Drop、From、Index 这些 trait 在真实工程里长什么样。
工具备齐了,从exercises/01_intro/第一关开始敲,今晚就能让第一个测试变绿。
【免费下载链接】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),仅供参考