Logo

本课程主要内容是什么?

通过解决这二十四道富有挑战性的谜题,以有趣的方式练习 Rust 编程。

概念

本课程主要内容是什么?

通过解决这二十四道富有挑战性的谜题,以有趣的方式练习 Rust 编程。

Rust 编程语言

Rust 是一门非常一致的语言。Rust 核心团队付出了巨大努力,确保 **Rust 会按你所要求的方式执行**,而不会在程序员不知情的情况下擅自进行额外操作。Rust 的工具链——尤其是 **Clippy**——能够检查代码中的常见错误,并经常提出改进建议。

Course Image

Rust 语言有一些独特的特性。有时这些特性出现在系统之间的缝隙中,有时则是出于谨慎的设计考量,以避免意外行为。在本课程中,你将学习一系列自包含的 Rust 程序,深入探索这些特性。每个程序被称为一个 脑筋急转弯,旨在揭示 Rust 中可能让你感到意外的某个方面。

当你阅读每一个脑筋急转弯时,请尝试预测程序的输出结果。以下是可能出现的答案示例:

...
在谜题中可能遇到的合理输出

每个脑筋急转弯之后,都会附有对该程序为何产生该结果的详细解释,以及讨论类似问题如何影响你在实际项目中的代码编写。

为了从本课程中获得最大收获,请在进入下一课之前先自行分析代码。遵循这些步骤有助于巩固你的学习成果。

通过理解这些特性,你可以成为一名更出色的 Rust 程序员,并有望在自己的项目中避开这些陷阱。

目标读者

尽管本课程中包含大量可运行的代码和终端演示,但在开始之前,你需要具备 已正确安装的 Rust 环境,并对如何创建和运行 Rust 应用程序有一定了解。这些脑筋急转弯主要面向初学者和中级开发者。

注意:如果你是 Rust 新手,可以参考《The Rust Programming Language》(Rust 程序设计语言,Steve Klabnik 和 Carol Nichols 著)或《Hands-on Rust:通过 2D 游戏开发与实践进行高效学习》作为入门起点。
如果你完全没接触过 Rust,建议先打好 Rust 基础,再回到本课程。

课程内容预期

本课程中的测验和代码都尽可能简短,专注于展示每个脑筋急转弯的 最小可复现示例。所有示例均位于一个 Rust 工作区中。要运行每个示例,只需在终端中切换到对应目录,然后输入 cargo run。

部分脑筋急转弯需要额外的库支持。在这种情况下,Cargo.toml 文件会与源代码一同展示。

本课程探讨了 Rust 的一些独特之处,有时也涉及编程本身的一些普遍现象。尽管存在一些看似奇怪的地方,但 Rust 仍是一门极为出色的编程语言。揭示这些特性并非为了批评语言本身,而是希望帮助你理解其背后的设计逻辑。很快,那些看似“怪异”的地方,就会显得更加“有意为之”。

在整个学习过程中,请保持开放心态,像侦探一样对待每一个脑筋急转弯。所有线索都已给出。当你理解了每个脑筋急转弯背后的原理后,你将更清楚地认识到程序为何如此工作,以及如何避免类似的陷阱。你甚至可能学到一些新的技巧!

Course Image

谜题