Android程序员初学Rust-开篇

229 阅读4分钟

原教程地址
Comprehensive Rust

1.png

这是一门由谷歌安卓团队开发的免费 Rust 教程。该教程全面涵盖了 Rust 的所有内容,从基础语法到高级主题,如泛型和错误处理。

本教程的目标是教授 Rust 编程语言。我们假设你对 Rust 一无所知,并希望达到以下目的:

  • 全面理解 Rust 的语法和语言特性。
  • 能够修改现有的 Rust 程序并编写新的Rust程序。
  • 学会常见的 Rust 编程习惯用法。

非教程目标

Rust 是一门丰富的语言,我们无法在短短几天内涵盖其全部内容。本教程的一些非目标包括:

  • 学习如何开发宏:请参阅《Rust编程语言》和《Rust示例》以获取相关内容。

宏在 Rust 中是一个比较复杂的概念,需要单开讲解,Rock Byte 在这里推荐给大家一本书《Write Powerful Rust Macros》

教程假设

本教程假设你已经具备编程知识。正如标题那样,我们是写给 Android 程序员的入门教程,那么读者应该具备基础的编程知识吧。Rust 是一门静态类型语言,我们有时会将其与 CC++ 进行比较,以便更好地解释或对比 Rust 的处理方式。

安装Cargo

2.avif 当我们开始阅读关于 Rust 的内容时,很快就会遇到 Cargo,这是 Rust 生态系统中用于构建和运行 Rust 应用程序的标准工具。在这里,我们想简要介绍一下 Cargo 是什么,它如何适应更广泛的生态系统,以及它如何融入这次培训中。

请参照这个地址安装相关工具,它同时会安装 Cargo 构建工具 (cargo) 和 Rust 编译器 (rustc)。同时,还会安装 rustup,这是一个命令行工具,可用于安装不同版本的编译器。

安装 Rust 后,应配置编辑器或 IDE 以支持 Rust 开发。大多数编辑器通过与 rust-analyzer 通信来实现这一点,rust-analyzerVS CodeEmacsVim/Neovim 等提供自动补全和跳转到定义功能。此外,还有另一个名为 RustRoverIDE 可用。当然,如果是简短的 Rust 代码,官方提供一个在线代码的 Playground,一些简短的代码可以在这里运行,也可以通过这个分享你的代码片段。

如果你不想那么折腾 IDE,我推荐使用 RustRover

Rust 生态

Rust 生态系统由许多工具组成,其中主要的工具包括:

  • rustcRust 编译器,将 .rs 文件转换为二进制文件和其他中间格式。
  • cargoRust 的依赖管理器和构建工具。Cargo 知道如何下载依赖项,通常托管在 https://crates.io 上,并在构建项目时将它们传递给 rustcCargo 还带有一个内置的测试运行器,用于执行单元测试。
  • rustupRust 工具链的安装程序和更新程序。这个工具用于安装和更新 rustccargo,当发布新的 Rust 版本时。此外,rustup 还可以下载标准库的文档。你可以同时安装多个 Rust 版本,rustup 允许你根据需要在不同版本之间切换。

在本教程中,我们会在文中给出示例代码,但是这样并不能立即运行,所以读者可以使用在线 Playground运行我们的代码。尽管如此,我们仍然建议安装 Cargo:这将使读者更容易完成练习。在教程的最后部分,我们将进行一个较大的练习,展示如何处理依赖项,而这就需要 Cargo

学习 Rust 是一定会安装 Cargo 的,就像学习 Android 必须有 Gradle 一样。

本地运行

该教程的所有代码都可以本地运行,当你按照上面的章节完全安装 Rust 之后,便可以按照以下步骤从本教程中任何一个示例构建一个可运行的 Rust 程序(Rust 中叫二进制项目):

  1. 复制你想要运行的示例代码。
  2. 使用 cargo new exercise 创建一个新的 exercise/ 目录来存放您的代码。
  3. 进入 exercise/ 目录,并使用 cargo run 来构建和运行您的二进制文件。
  4. src/main.rs 中的样板代码替换为你在第 1 步中复制的代码。
  5. 使用 cargo run 来构建和运行程序。
  6. 使用 cargo check 快速检查你的项目是否有错误,使用 cargo build 编译它而不运行。你将在 target/debug/ 中找到正常调试构建的输出。使用 cargo build --releasetarget/release/ 中生成优化后的 release 版本构建(通常 release 版本会更快)。
  7. 你可以通过编辑 Cargo.toml 为你的项目添加依赖项。当你运行 cargo 命令时,它将自动为你下载和编译缺失的依赖项(和 Gradle 真的很类似)。

总结

开篇完毕,接下来将真正进入我们的教程内容。