欢迎

欢迎来到 “学习Rust的100个练习”

本课程将通过每次一个练习的方式,教你Rust的核心概念。 你将学习Rust的语法、类型系统、标准库和生态系统。

我们不会假设你有任何Rust的先验知识,但我们假设你至少知道另一种编程语言。 我们同样不会假设你有任何系统编程或内存管理的先验知识。这些主题将在课程中涵盖。

换句话说,我们将从零开始! 你将通过小且可控的步骤逐步建立你的Rust知识。到课程结束时,你将解决大约100个练习,足以让你感觉能够舒适地处理小到中等规模的Rust项目。

方法论

本课程基于“边做边学”的原则。 它被设计成互动且亲自动手的形式。

Mainmatter 开发了这门课程, 能够在四天内的课堂环境中进行授课:每位参与者按照自己的进度推进课程,由经验丰富的讲师提供指导,回答问题,并根据需要深入讨论主题。 如果你对我们的培训课程感兴趣,或者想将这门课程引入你的公司,请与我们联系。

你也可以自己跟随课程学习,但我们建议你找一个朋友或导师在遇到困难时帮助你。你也可以在GitHub仓库的solutions分支中找到所有练习的解决方案。

这个课程的中文翻译由鸟窝完成,中文在线版可以访问 [rust100](https://colobu.com/rust100)。

结构

在屏幕的左侧,你可以看到课程被划分为多个章节。每个章节都会介绍Rust语言的一个新概念或特性。 为了检验你的理解程度,每个章节都配套有一个你需要完成的练习。

你可以在配套的GitHub仓库中找到这些练习。 开始课程之前,请确保将仓库克隆到你的本地机器上:

# 如果你已经为GitHub设置了SSH密钥
git clone git@github.com:mainmatter/100-exercises-to-learn-rust.git

# 否则,使用HTTPS链接:
git clone https://github.com/mainmatter/100-exercises-to-learn-rust.git

我们还建议你在分支上进行操作,这样可以轻松跟踪你的进度,并在需要时从主仓库拉取更新:

cd 100-exercises-to-learn-rust
git checkout -b my-solutions

所有练习都位于exercises文件夹内。每个练习都被构建成一个Rust包的形式。这个包包含了练习本身、操作指南(位于src/lib.rs中)以及一套测试套件来自动验证你的解决方案。

Workshop运行器 wr

为了验证你的答案,我们提供了一个工具,它将引导你完成整个课程。这就是wr命令行工具(全称为"workshop runner")。通过以下命令安装:

cargo install --locked workshop-runner

新开一个终端,回到仓库的顶层目录,运行wr命令以启动课程:

wr

wr会验证当前练习的解答。

在未解决当前章节的练习前,不要继续到下一章节。

我们建议随着课程的进行,将你的解决方案提交到Git,这样可以方便地追踪进度,并在需要时“从已知点”重新开始。

祝学习愉快!

参考

本章节的练习位于exercises/01_intro/00_welcome

作者

本课程由Mainmatter的首席工程顾问Luca Palmieri编写。 Luca自2018年起就开始使用Rust,最初在TrueLayer公司工作,之后在AWS工作。 Luca是《从零到生产环境的Rust》一书的作者,这是学习如何用Rust构建后端应用的首选资源。 他也是多个开源Rust项目的作者和维护者,包括cargo-chefPavexwiremock