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、匹配模式及错误处理等核⼼概念
企业数字化 ERP 产品动态
相关推荐
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:37:45
2026年全国美术统考的整体评分标准具体有哪些? 写作方向:科普解答型 2026年全国美术统考没有完全统一的单套评分细则,由各省教育考试院在教育部2024年发布的艺考改革总框架下制定本省评分标准,核心评分维度全国趋同,整体导向是弱化模板套路、强化基础能力与应用能力。从目前已公… · 2026/9/24 8:37:45
pandas数据处理全指南:从入门到实战 1. 写在前面:为什么你一定要学pandas如果你刚接触Python,或者已经写了几天代码准备往数据分析方向走,那pandas一定是绕不开的那个库。我可以直接告诉你一个判断标准:在Python的数据处理生态里,pandas就是那个“事实标准… · 2026/9/24 19:21:50
碳足迹可视化实战:从FusionSolar数据接入到绿色云服务器调度 碳足迹可视化这个概念,这两年已经不是“要不要做”的问题,而是“怎么做才能不挨骂”的问题了。我今年内部搞了一个“绿色云服务器管理”的项目,核心是把光伏发电数据和云资源调度打通,用华为FusionSolar当绿电数据源,最… · 2026/9/24 19:21:50
Linux cd命令从入门到精通:路径切换、磁盘管理与脚本避坑指南 1. 为什么要把cd归到磁盘管理里 看到这个标题,估计不少人心里犯嘀咕:cd不就是切换目录吗?跟磁盘管理八竿子打不着吧。 其实把cd放进磁盘管理这个分类,仔细想想是有道理的。磁盘管理这一层,说白了就是跟存储、分区、挂… · 2026/9/24 19:21:44
双目视觉测尺寸实战:OpenCV相机标定与立体匹配指南 简介:基于Python与OpenCV实现的双目视觉物体尺寸测量项目,面向毕业设计、期末大作业及课程设计场景,提供一套可直接运行的完整方案。压缩包共23个文件,包含Python源码、Markdown开发文档说明以及21张双目视觉实验图像(… · 2026/9/24 19:21:44
热点新闻推荐系统毕设全栈实战:Django+Vue+深度学习 每年毕业季,我都会遇到一批被“推荐系统”这个题目吸引的同学,热点新闻推荐系统又是其中最常见的一款。选这个题的人多,但真正能把它做明白的不多——多数人不是不会调模型,而是不知道整个项目该怎么闭环:数据从哪来、… · 2026/9/24 19:21:44
Markdown文件打开与编辑全攻略:从查看器到专业编辑器 1. 从“打不开的.md文件”说起:这个格式到底是什么来头很多人第一次遇到.md文件,场景都差不多:从某个项目仓库里下载了一份说明文档,或者同事发来一个压缩包,解压之后发现里面躺着一堆后缀是.md的文件。双击࿰… · 2026/9/24 19:21:43
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44