原教程地址
Comprehensive Rust
这是一门由谷歌安卓团队开发的免费 Rust 教程。该教程全面涵盖了 Rust 的所有内容,从基础语法到高级主题,如泛型和错误处理。
本教程的目标是教授 Rust 编程语言。我们假设你对 Rust 一无所知,并希望达到以下目的:
- 全面理解 Rust 的语法和语言特性。
- 能够修改现有的 Rust 程序并编写新的Rust程序。
- 学会常见的 Rust 编程习惯用法。
非教程目标
Rust 是一门丰富的语言,我们无法在短短几天内涵盖其全部内容。本教程的一些非目标包括:
- 学习如何开发宏:请参阅《Rust编程语言》和《Rust示例》以获取相关内容。
宏在 Rust 中是一个比较复杂的概念,需要单开讲解,Rock Byte 在这里推荐给大家一本书《Write Powerful Rust Macros》
教程假设
本教程假设你已经具备编程知识。正如标题那样,我们是写给 Android 程序员的入门教程,那么读者应该具备基础的编程知识吧。Rust 是一门静态类型语言,我们有时会将其与 C 和 C++ 进行比较,以便更好地解释或对比 Rust 的处理方式。
安装Cargo
当我们开始阅读关于 Rust 的内容时,很快就会遇到 Cargo,这是 Rust 生态系统中用于构建和运行 Rust 应用程序的标准工具。在这里,我们想简要介绍一下 Cargo 是什么,它如何适应更广泛的生态系统,以及它如何融入这次培训中。
请参照这个地址安装相关工具,它同时会安装 Cargo 构建工具 (cargo) 和 Rust 编译器 (rustc)。同时,还会安装 rustup,这是一个命令行工具,可用于安装不同版本的编译器。
安装 Rust 后,应配置编辑器或 IDE 以支持 Rust 开发。大多数编辑器通过与 rust-analyzer 通信来实现这一点,rust-analyzer 为 VS Code、Emacs、Vim/Neovim 等提供自动补全和跳转到定义功能。此外,还有另一个名为 RustRover 的 IDE 可用。当然,如果是简短的 Rust 代码,官方提供一个在线代码的 Playground,一些简短的代码可以在这里运行,也可以通过这个分享你的代码片段。
如果你不想那么折腾 IDE,我推荐使用 RustRover 。
Rust 生态
Rust 生态系统由许多工具组成,其中主要的工具包括:
rustc:Rust 编译器,将.rs文件转换为二进制文件和其他中间格式。cargo:Rust 的依赖管理器和构建工具。Cargo 知道如何下载依赖项,通常托管在https://crates.io上,并在构建项目时将它们传递给rustc。Cargo 还带有一个内置的测试运行器,用于执行单元测试。rustup:Rust 工具链的安装程序和更新程序。这个工具用于安装和更新rustc和cargo,当发布新的 Rust 版本时。此外,rustup还可以下载标准库的文档。你可以同时安装多个 Rust 版本,rustup允许你根据需要在不同版本之间切换。
在本教程中,我们会在文中给出示例代码,但是这样并不能立即运行,所以读者可以使用在线 Playground运行我们的代码。尽管如此,我们仍然建议安装 Cargo:这将使读者更容易完成练习。在教程的最后部分,我们将进行一个较大的练习,展示如何处理依赖项,而这就需要 Cargo。
学习 Rust 是一定会安装 Cargo 的,就像学习 Android 必须有 Gradle 一样。
本地运行
该教程的所有代码都可以本地运行,当你按照上面的章节完全安装 Rust 之后,便可以按照以下步骤从本教程中任何一个示例构建一个可运行的 Rust 程序(Rust 中叫二进制项目):
- 复制你想要运行的示例代码。
- 使用
cargo new exercise创建一个新的exercise/目录来存放您的代码。 - 进入
exercise/目录,并使用cargo run来构建和运行您的二进制文件。 - 将
src/main.rs中的样板代码替换为你在第 1 步中复制的代码。 - 使用
cargo run来构建和运行程序。 - 使用
cargo check快速检查你的项目是否有错误,使用cargo build编译它而不运行。你将在target/debug/中找到正常调试构建的输出。使用cargo build --release在target/release/中生成优化后的release版本构建(通常release版本会更快)。 - 你可以通过编辑
Cargo.toml为你的项目添加依赖项。当你运行cargo命令时,它将自动为你下载和编译缺失的依赖项(和 Gradle 真的很类似)。
总结
开篇完毕,接下来将真正进入我们的教程内容。