ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

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

2026/9/24 8:38:11 拓冰建站 浏览量
RUST图解 第 1 章:入门(Getting Started) RUST图解 第 1 章入门Getting Started章节概要本章引导你完成 Rust 的安装rustup、第一个 Hello World 程序的编写与运行以及 Cargo 包管理器的基本使用。本章图解目录1.1 安装Installation1.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此外你还需要⼀个链接器linkerRust 会⽤它将编译⽣成的⽂件组合为⼀个最终可执⾏⽂件。通常你的系统上已经⾃带了链接器。如果遇到链接器错误应安装⼀个 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:PathLinux / 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 DocumentationRust 安装包⾃带了⼀套完整的离线本地⽂档。在终端运⾏以下命令即可在浏览器中打开本地⽂档rustup docBASH每当标准库提供了某个类型或函数⽽你不确定其⽤法时都可以查阅其中的 API ⽂档使⽤⽂本编辑器和 IDEUsing 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 PowerShellmkdir ~/projectsBASHcd ~/projects mkdir hello_world cd hello_world对于 Windows CMDmkdir “%USERPROFILE%\projects” CMDcd /d “%USERPROFILE%\projects”mkdir hello_worldcd hello_worldRust 程序基础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./mainHello, world!在 Windows 上使⽤.\main运⾏rustc main.rs CMD.\mainHello, world!如果屏幕上打印出了 Hello, world!恭喜你你已经正式写出了⼀个 Rust 程序成为了⼀名 Rust 程序员——欢迎加⼊Rust 程序结构剖析Anatomy of a Rust Program让我们逐⾏细致拆解这个程序fnmain(){RUST}fn main() { … } 定义了⼀个名为 main 的函数。main函数是极其特殊的在每⼀个 Rust 可执⾏程序中它永远是程序启动后最先执⾏的代码。括号 () 内⽤于放置参数列表当前 main 函数没有参数也不返回任何值。函数体被包裹在花括号 {} 中。Rust 要求所有函数体都必须⽤花括号包裹。通常的代码规范是将左花括号与函数签名放在同⼀⾏中间保留⼀个空格。Rust ⾃带了官⽅⾃动格式化⼯具 rustfmt 来维持代码⻛格的统⼀。接下来看函数体内部的代码println!(“Hello, world!”); RUST这⾏代码完成了打印⽂本的⼯作其中有三个关键细节调⽤的是宏Macro⽽⾮普通函数它使⽤的是 println!带感叹号 !。如果是普通函数则写作println。Rust 的宏⽤于实现元编程与代码⽣成宏与函数的语法规则不尽相同将在第 20 章深⼊探讨。现在只需记住带 ! 意味着你在调⽤宏。传递字符串字⾯量我们将 “Hello, world!” 作为参数传给 println!宏会将其输出到屏幕。以分号结尾代码以分号 ; 结尾表明当前表达式已经结束下⼀条表达式可以开始。绝⼤多数 Rust 语句都以分号结尾。编译与运⾏Compilation and ExecutionRust 是⼀⻔预先编译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 为我们⽣成了两个⽂件和⼀个⽬录Cargo.toml项⽬的配置⽂件。src/ ⽬录包含⼀个初始化的 main.rs ⽂件。Git 仓库Cargo 还会默认初始化⼀个新的 Git 仓库并⽣成⼀个 .gitignore ⽂件如果是在已有 Git 仓库中执⾏则不会重复⽣成也可使⽤ --vcs 参数指定版本控制⼯具。打开 Cargo.toml内容⼤致如下代码清单 1-2Listing 1-2: The contents of Cargo.toml generated by cargo new TOML[package]name “hello_cargo”version “0.1.0”edition “2024”[dependencies]这⼀⽂件采⽤ TOMLTom’s Obvious, Minimal Language格式这是 Cargo 的配置语⾔。[package] 是⼀个段落标题表示后续内容⽤于配置当前包package。紧随其后的三⾏是项⽬元数据包名name、版本号version以及使⽤的 Rust 版本标准edition。[dependencies] 段落⽤于列出当前项⽬所依赖的第三⽅代码包在 Rust 中代码包统称为 crate。当前项⽬没有依赖因此下⽅为空。打开 src/main.rsfnmain(){RUSTprintln!(Hello, world!);}Cargo 同样⾃动为我们⽣成了⼀个基础的 Hello, world! 程序Cargo 的⼯程惯例所有的源代码⽂件都应放在 src/ ⽬录下。项⽬根⽬录只⽤于放置 README、许可协议license、配置⽂件如 Cargo.toml等⾮代码⽂档与资源。如果你有⼀个现有的未使⽤ Cargo 的⽼项⽬只需将代码移⾄ src ⽬录下并在项⽬根⽬录运⾏ cargoinit 即可将其转换为标准的 Cargo 项⽬。构建与运⾏ Cargo 项⽬Building and Running a Cargo Project在 hello_cargo ⽬录下运⾏构建命令cargo buildBASHCompiling hello_cargo v0.1.0 (file:///projects/hello_cargo)Finished dev [unoptimized debuginfo] target(s) in 2.85 secs该命令会在 target/debug/ ⽬录下⽣成可执⾏⽂件 hello_cargoWindows 下为target\debug\hello_cargo.exe。默认构建为调试构建Debug build带有调试信息且不包含性能优化。你可以直接⼿动运⾏⽣成的⽬标程序./target/debug/hello_cargo。⾸次构建时根⽬录下还会⾃动⽣成⼀个 Cargo.lock ⽂件⽤于精确锁定各依赖项的版本号以保证可重现构建通常⽆需⼿动修改该⽂件。cargo run更常⽤的命令是 cargo run它会在⼀个步骤中完成编译与运⾏cargo runBASHFinished dev [unoptimized debuginfo] target(s) in 0.0 secsRunningtarget/debug/hello_cargoHello, world!如果代码此前已经编译过且未发⽣任何改动Cargo 会跳过重新编译直接运⾏现有的⼆进制⽂件。cargo check在编写代码时开发者通常会频繁检查代码是否存在语法或类型错误。运⾏ cargo check 可以快速检查代码是否能通过编译但不会耗费时间去链接⽣成可执⾏⽂件cargo checkBASHChecking 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 的核⼼命令cargo new 创建新项⽬。cargo build编译构建调试版项⽬。cargo run⼀步完成编译并运⾏。cargo check快速检查语法与类型错误不⽣成⼆进制⽂件。cargo build --release开启优化构建⽤于发布的最终⼆进制程序。并且使⽤ Cargo 的最⼤好处之⼀是⽆论你在 Linux、macOS 还是 Windows 上开发所有的命令与⼯作流是完全统⼀的。本章⼩结Summary在第 1 章中你已经完成了 Rust 学习旅程的第⼀步掌握了如何使⽤ rustup 安装和更新最新稳定版的 Rust。如何打开本地的离线 API ⽂档rustup doc。如何直接使⽤ rustc 编写、编译并运⾏ Hello, world! 程序。如何使⽤ Rust 官⽅标准⼯具 cargo 创建、检查、构建和运⾏项⽬。接下来在第 2 章中我们将通过亲⼿制作⼀个完整的猜数游戏Guessing Game实战项⽬带你初识变量、⽤户输⼊处理、第三⽅依赖库crate、匹配模式及错误处理等核⼼概念