跳转到内容

Rust 学习路线:下一步学什么

如果你已经学完了这门课程里的各个主题,那么你掌握的 Rust 已经足够写出真正的程序了:变量、控制流、函数、所有权、借用、集合、模块、错误处理、trait、泛型,甚至还有线程、智能指针、unsafe 和宏。日常开发中会用到的东西,这些确实已经占了大头。剩下的主要是多练习,以及在需要时再去学各个库的具体用法。

从这里开始,真正学到东西最快的办法,就是挑一个小项目,然后被卡住几次。本站准备了五个带讲解的项目,可以从它们开始:

做完这些之后,试着自己独立做一个:

  • 一个简单的计算器:练习 match、Result,以及对错误输入的处理。
  • 一个读取 JSON 配置的程序:用 Serde 从文件里加载设置。
  • 一个小小的网页爬虫或 API 客户端:在 async/await 的基础上,用 reqwest 获取一个 URL。

还不确定想做哪类程序?“用 Rust 能做什么”系列页面介绍了 Rust 擅长的领域和大家常用的 crate:网络编程、数据库、桌面 GUI 应用、游戏和单片机。

想先做些小练习?可以做做练习题,或者用面试题考考自己。

Rust 的包生态(crate,通过 crates.io(英文)分发)几乎覆盖了你想用库来解决的所有事情。下面几个会经常遇到:

这些 crate 都可以用 cargo add <crate 名> 添加到项目里,不需要另外的包管理器。Rust Cargo 与 crate 一页讲解了它的工作原理,以及怎样挑选一个好的 crate。

这门课程比大多数入门教程走得更远,包括智能指针、线程和信道、async/await、unsafe Rust、调用 C 代码(FFI)、WebAssembly,以及自己编写 macro_rules! 宏。还有几个更深入的主题有单独的页面,等你准备好了再看:

  • 过程宏:宏一页中 macro_rules! 宏的“表兄弟”,更强大(也更复杂);#[derive(Debug)] 之类的功能在底层就是靠它们实现的
  • no_std / 嵌入式 Rust:不用标准库写 Rust,用于单片机和其他资源受限的环境

写出有用的 Rust 程序并不需要这些。知道它们存在就好,等你真的遇到需要它们的问题时再学也不迟。

你以后还是会碰到让你一头雾水的编译错误,这很正常。不只是新手,写了好几年 Rust 的人也会遇到。经验带来的区别,并不是错误不再出现,而是你读懂它们的速度越来越快。坚持写代码,坚持读编译器告诉你的信息,一切都会越来越容易。

祝你好运,也谢谢你一路坚持到这里。🦀

小测验

1. 本页推荐用哪个 crate 来读写 JSON?

2. 本页提到哪个 crate 用于异步编程?

3. 下面哪一项被本页列为课程“没有讲到”的主题?

得分: 0 / 3