news 2026/9/24 8:37:51

RUST图解 第 1 章:入门(Getting Started)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RUST图解 第 1 章:入门(Getting Started)

RUST图解 第 1 章:入门(Getting Started)

章节概要

本章引导你完成 Rust 的安装(rustup)、第一个 Hello World 程序的编写与运行,以及 Cargo 包管理器的基本使用。

本章图解

目录

  • 1.1 安装(Installation)
  • 1.2 Hello, World!
  • 1.3 Hello, Cargo!

正文内容

让我们开启你的 Rust 之旅!学习⼀⻔新语⾔有很多内容需要掌握,但每段旅程都始于脚下。在本章中,我们将讨
论以下内容:

  • 在 Linux、macOS 和 Windows 上安装 Rust
  • 编写⼀个打印 Hello, world! 的程序
  • 使⽤ Rust 的包管理器兼构建⼯具 cargo

安装(Installation)

安装 Rust 的第⼀步是下载并安装 rustup,这是⼀个⽤于管理 Rust 版本及相关⼯具的命令⾏⼯具。下载过程需要
⽹络连接。
注意:如果你出于某种原因不想使⽤ rustup,可以参阅官⽅的 Other Rust Installation Methods ⻚⾯获取
更多选项。
以下步骤将为你安装 Rust 编译器的最新稳定版本(stable)。Rust 的稳定性保证确保了本书中所有能够编译的代
码示例,在更新的 Rust 版本中依然能够继续编译。不同版本之间的输出可能会有细微差别(因为 Rust 经常改进错
误提示和警告),但任何安装的较新稳定版都可以正常配合本书内容使⽤。
命令⾏符号说明(Command Line Notation)
在本书中,终端命令⾏的输⼊通常以 $ 开头。你不需要输⼊ $ 符号,它只是表示命令提示符。不以 $ 开头的⾏通
常是上⼀条命令的输出。针对 PowerShell 的示例,提示符会使⽤ > ⽽不是 $。
在 Linux 或 macOS 上安装 rustup
如果你使⽤的是 Linux 或 macOS,请打开终端并输⼊以下命令:

curl--proto '=https'--tlsv1.2https://sh.rustup.rs-sSf|shBASH

该命令会下载安装脚本并启动 rustup ⼯具的安装过程,为你安装最新的 Rust 稳定版。期间可能会提示输⼊系统密
码。如果安装成功,终端将显示:
Rust is installed now. Great! PLAINTEXT
此外,你还需要⼀个链接器(linker),Rust 会⽤它将编译⽣成的⽂件组合为⼀个最终可执⾏⽂件。通常你的系统
上已经⾃带了链接器。如果遇到链接器错误,应安装⼀个 C 编译器(通常会⾃带链接器):

  • macOS:运⾏ $ xcode-select --install 获取 C 编译器。
  • Linux:根据发⾏版⽂档安装 GCC 或 Clang(例如 Ubuntu ⽤户可以安装 build-essential 包)。
    在 Windows 上安装 rustup
    在 Windows 上,请访问 https://www.rust-lang.org/tools/install/ 并按照指示下载安装程序。安装过程中会提
    示你安装 Visual Studio,这能提供编译程序所需的链接器与原⽣库(如果需要帮助,可参考官⽅⽂档)。
    本书后续给出的命令在 Windows 的 CMD 和 PowerShell 中均适⽤;如果有差异,会特别说明。
    故障排除(Troubleshooting)
    检查 Rust 是否正确安装,请在终端输⼊:
rustc--versionBASH

如果安装成功,你会看到最新稳定版的版本号、提交哈希和提交⽇期,格式如下:
rustc x.y.z (abcabcabc yyyy-mm-dd) PLAINTEXT
如果未看到该输出,请检查你的系统环境变量(PATH)中是否包含了 Rust 的路径:

  • Windows CMD:> echo %PATH%
  • PowerShell:> echo $env:Path
  • Linux / macOS:$ echo $PATH
    如果⼀切配置⽆误但仍然⽆法使⽤,可以通过 Rust 社区⻚⾯(https://www.rust-lang.org/community/)寻求其
    他“Rustacean”(Rustaceans 是 Rust 开发者的⾃称昵称)的帮助。
    更新与卸载(Updating and Uninstalling)
    通过 rustup 安装后,更新 Rust ⾮常简单,只需在命令⾏运⾏:
rustup updateBASH

若要完全卸载 Rust 和 rustup,请运⾏:

rustupselfuninstallBASH

阅读本地⽂档(Reading the Local Documentation)
Rust 安装包⾃带了⼀套完整的离线本地⽂档。在终端运⾏以下命令即可在浏览器中打开本地⽂档:

rustup docBASH

每当标准库提供了某个类型或函数,⽽你不确定其⽤法时,都可以查阅其中的 API ⽂档!
使⽤⽂本编辑器和 IDE(Using Text Editors and IDEs)
本书不对你编写代码的⼯具有任何假设,⼏乎任何纯⽂本编辑器都可以。⽬前许多编辑器和 IDE 都对 Rust 提供了
良好的⽀持(官⽅重点通过 rust-analyzer 提供 IDE ⽀持)。你可以查阅官⽅⽹站的 tools ⻚⾯了解更多推荐。

Hello, World!

安装好 Rust 后,现在开始编写你的第⼀个 Rust 程序。按照学习新语⾔的传统,我们将编写⼀个向屏幕输出
Hello, world! 的⼩程序。
项⽬⽬录设置(Project Directory Setup)
⾸先创建⼀个⽬录来存放 Rust 代码。Rust 对代码存放在哪⾥没有硬性要求,但建议在⽤户主⽬录下创建⼀个
projects ⽬录来集中存放。
在终端中执⾏以下命令:
对于 Linux、macOS 和 Windows PowerShell:

mkdir ~/projectsBASHcd ~/projects mkdir hello_world cd hello_world

对于 Windows CMD:

mkdir “%USERPROFILE%\projects” CMD
cd /d “%USERPROFILE%\projects”
mkdir hello_world
cd hello_world
Rust 程序基础(Rust Program Basics)
在 hello_world ⽬录下新建⼀个名为 main.rs 的源⽂件。

  • Rust 源⽂件⼀律以 .rs 作为扩展名。
  • 如果⽂件名由多个单词组成,按照约定习惯使⽤下划线分隔,例如 hello_world.rs ⽽不是
    helloworld.rs。
    打开 main.rs 并输⼊以下代码(代码清单 1-1):
// Listing 1-1: A program that prints Hello, world! RUSTfnmain(){println!("Hello, world!");}

保存⽂件后返回终端,在 ~/projects/hello_world ⽬录下执⾏编译与运⾏命令:
在 Linux 或 macOS 上:

rustc main.rsBASH./main

Hello, world!
在 Windows 上(使⽤.\main运⾏):

rustc main.rs CMD
.\main
Hello, world!
如果屏幕上打印出了 Hello, world!,恭喜你!你已经正式写出了⼀个 Rust 程序,成为了⼀名 Rust 程序员——
欢迎加⼊!
Rust 程序结构剖析(Anatomy of a Rust Program)
让我们逐⾏细致拆解这个程序:

fnmain(){RUST}
  1. fn main() { … } 定义了⼀个名为 main 的函数。

  2. main函数是极其特殊的:在每⼀个 Rust 可执⾏程序中,它永远是程序启动后最先执⾏的代码。

  3. 括号 () 内⽤于放置参数列表,当前 main 函数没有参数,也不返回任何值。

  4. 函数体被包裹在花括号 {} 中。Rust 要求所有函数体都必须⽤花括号包裹。通常的代码规范是将左花括号与
    函数签名放在同⼀⾏,中间保留⼀个空格。(Rust ⾃带了官⽅⾃动格式化⼯具 rustfmt 来维持代码⻛格的统
    ⼀)。
    接下来看函数体内部的代码:
    println!(“Hello, world!”); RUST
    这⾏代码完成了打印⽂本的⼯作,其中有三个关键细节:

  5. 调⽤的是宏(Macro),⽽⾮普通函数:它使⽤的是 println!(带感叹号 !)。如果是普通函数,则写作
    println。Rust 的宏⽤于实现元编程与代码⽣成,宏与函数的语法规则不尽相同(将在第 20 章深⼊探讨)。现
    在只需记住:带 ! 意味着你在调⽤宏。

  6. 传递字符串字⾯量:我们将 “Hello, world!” 作为参数传给 println!,宏会将其输出到屏幕。

  7. 以分号结尾:代码以分号 ; 结尾,表明当前表达式已经结束,下⼀条表达式可以开始。绝⼤多数 Rust 语句
    都以分号结尾。
    编译与运⾏(Compilation and Execution)
    Rust 是⼀⻔预先编译(ahead-of-time compiled)的语⾔。在运⾏之前,必须先使⽤编译器 rustc 进⾏编译:

rustc main.rsBASH

这与 C/C++(使⽤ gcc 或 clang)类似。编译成功后,Rust 会输出⼀个⼆进制可执⾏⽂件:

  • 在 Linux/macOS 上运⾏ ls,会看到 main(可执⾏⽂件)和 main.rs。
  • 在 Windows 上会⽣成 main.exe 以及包含调试信息的 main.pdb。
    可执⾏⽂件⽣成后,即使在⼀台没有安装 Rust 编译环境的机器上,也可以直接分发并运⾏该⼆进制⽂件。这与
    Python、Ruby 或 JavaScript 等动态语⾔不同(那些语⾔需要⽬标机器装有解释器/运⾏环境)。
    对于简单的单⽂件程序,直接使⽤ rustc 即可;但随着项⽬规模变⼤、需要引⼊第三⽅依赖库以及多⽂件协同管
    理,直接调⽤ rustc 会变得⾮常繁琐。为此,Rust 官⽅提供了项⽬管理利器:Cargo。

Hello, Cargo!

Cargo 是 Rust 官⽅的构建系统(build system)和包管理器(package manager)。绝⼤多数 Rustacean 都会
使⽤ Cargo 来管理项⽬,因为它接管了诸如编译构建代码、下载项⽬依赖库(dependencies)以及编译这些库等
绝⼤部分繁琐任务。
如果你使⽤了官⽅推荐的安装⽅式,Cargo 会与 Rust ⼀同被安装到系统中。可以通过以下命令验证:

cargo--versionBASH

使⽤ Cargo 创建项⽬(Creating a Project with Cargo)
回到你的 projects ⽬录,执⾏以下命令创建⼀个新项⽬:

cargo new hello_cargoBASHcd hello_cargo

进⼊ hello_cargo ⽬录后查看⽂件,你会发现 Cargo 为我们⽣成了两个⽂件和⼀个⽬录:

  1. Cargo.toml:项⽬的配置⽂件。

  2. src/ ⽬录:包含⼀个初始化的 main.rs ⽂件。

  3. Git 仓库:Cargo 还会默认初始化⼀个新的 Git 仓库并⽣成⼀个 .gitignore ⽂件(如果是在已有 Git 仓库
    中执⾏,则不会重复⽣成,也可使⽤ --vcs 参数指定版本控制⼯具)。
    打开 Cargo.toml,内容⼤致如下(代码清单 1-2):

Listing 1-2: The contents of Cargo.toml generated by cargo new TOML

[package]
name = “hello_cargo”
version = “0.1.0”
edition = “2024”
[dependencies]

  • 这⼀⽂件采⽤ TOML(Tom’s Obvious, Minimal Language)格式,这是 Cargo 的配置语⾔。
  • [package] 是⼀个段落标题,表示后续内容⽤于配置当前包(package)。
  • 紧随其后的三⾏是项⽬元数据:包名(name)、版本号(version)以及使⽤的 Rust 版本标准
    (edition)。
  • [dependencies] 段落⽤于列出当前项⽬所依赖的第三⽅代码包(在 Rust 中,代码包统称为 crate)。当前
    项⽬没有依赖,因此下⽅为空。
    打开 src/main.rs:
fnmain(){RUSTprintln!("Hello, world!");}

Cargo 同样⾃动为我们⽣成了⼀个基础的 Hello, world! 程序!
Cargo 的⼯程惯例:

  • 所有的源代码⽂件都应放在 src/ ⽬录下。
  • 项⽬根⽬录只⽤于放置 README、许可协议(license)、配置⽂件(如 Cargo.toml)等⾮代码⽂档与资
    源。
  • 如果你有⼀个现有的未使⽤ Cargo 的⽼项⽬,只需将代码移⾄ src ⽬录下,并在项⽬根⽬录运⾏ cargo
    init 即可将其转换为标准的 Cargo 项⽬。
    构建与运⾏ Cargo 项⽬(Building and Running a Cargo Project)
    在 hello_cargo ⽬录下,运⾏构建命令:
cargo buildBASH

Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs

  • 该命令会在 target/debug/ ⽬录下⽣成可执⾏⽂件 hello_cargo(Windows 下为
    target\debug\hello_cargo.exe)。

  • 默认构建为调试构建(Debug build),带有调试信息且不包含性能优化。

  • 你可以直接⼿动运⾏⽣成的⽬标程序:./target/debug/hello_cargo。

  • ⾸次构建时,根⽬录下还会⾃动⽣成⼀个 Cargo.lock ⽂件,⽤于精确锁定各依赖项的版本号以保证可重现
    构建,通常⽆需⼿动修改该⽂件。
    cargo run
    更常⽤的命令是 cargo run,它会在⼀个步骤中完成编译与运⾏:

cargo runBASH

Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
Runningtarget/debug/hello_cargo
Hello, world!
如果代码此前已经编译过且未发⽣任何改动,Cargo 会跳过重新编译,直接运⾏现有的⼆进制⽂件。
cargo check
在编写代码时,开发者通常会频繁检查代码是否存在语法或类型错误。运⾏ cargo check 可以快速检查代码是否能
通过编译,但不会耗费时间去链接⽣成可执⾏⽂件:

cargo checkBASH

Checking hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs
由于省去了⽣成⼆进制⽂件的环节,cargo check 通常⽐ cargo build 快得多。许多 Rustaceans 会在编码过程
中周期性运⾏它,直到需要最终运⾏时才调⽤ cargo build 或 cargo run。
发布构建(Building for Release)
当你的项⽬开发完毕、准备交付使⽤或进⾏基准性能测试时,可以加上 --release 参数:

cargo build--releaseBASH
  • 这会开启所有代码优化,将优化后的可执⾏⽂件输出到 target/release/ ⽬录。
  • 优化会使程序运⾏速度⼤幅提升,但相应的编译耗时会变⻓。
  • 因此 Rust 将其分为了两个配置环境:开发环境(调试构建,频繁快速重编)和发布环境(耗时编译,追求
    极致运⾏性能)。
    总结 Cargo 的核⼼命令
  1. cargo new :创建新项⽬。

  2. cargo build:编译构建调试版项⽬。

  3. cargo run:⼀步完成编译并运⾏。

  4. cargo check:快速检查语法与类型错误(不⽣成⼆进制⽂件)。

  5. cargo build --release:开启优化,构建⽤于发布的最终⼆进制程序。
    并且,使⽤ Cargo 的最⼤好处之⼀是:⽆论你在 Linux、macOS 还是 Windows 上开发,所有的命令与⼯作流是
    完全统⼀的。
    本章⼩结(Summary)
    在第 1 章中,你已经完成了 Rust 学习旅程的第⼀步,掌握了:

  6. 如何使⽤ rustup 安装和更新最新稳定版的 Rust。

  7. 如何打开本地的离线 API ⽂档(rustup doc)。

  8. 如何直接使⽤ rustc 编写、编译并运⾏ Hello, world! 程序。

  9. 如何使⽤ Rust 官⽅标准⼯具 cargo 创建、检查、构建和运⾏项⽬。
    接下来,在第 2 章中,我们将通过亲⼿制作⼀个完整的猜数游戏(Guessing Game)实战项⽬,带你初识变量、
    ⽤户输⼊处理、第三⽅依赖库(crate)、匹配模式及错误处理等核⼼概念!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 8:37:41

SPI四种模式详解:从CPOL/CPHA原理到实战配置与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 8:02:34

RV1126B MIPI-CSI图像采集失败的三大隐性断点与实操修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 7:52:34

树莓派串口全解析:UART、SPI、I2C与GPIO配置实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华