Rust 快速上手
我们来把 Rust 装到你的电脑上,再写出你的第一个程序。如果你暂时不想安装任何东西,也可以先在 Rust Playground 里跟着做,以后再回到这一页。
第 1 步:用 rustup 安装 Rust
Section titled “第 1 步:用 rustup 安装 Rust”安装 Rust 的官方方式是一个叫 rustup 的工具。它会安装 Rust 编译器和构建工具 cargo,并负责让它们保持最新。
打开 rustup.rs,按照你的系统对应的说明操作(也可以看 Rust 官网的中文安装页面):
-
Windows:下载并运行
rustup-init.exe,然后接受默认选项。 -
macOS / Linux:把下面这行粘贴到终端里:
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
第 2 步:检查是否安装成功
Section titled “第 2 步:检查是否安装成功”关掉终端再重新打开,然后运行:
rustc --versioncargo --version你应该会看到类似 rustc 1.xx.0 的版本号。看到了,就说明准备就绪。
rustc是 Rust 编译器(它把你的代码变成程序)。cargo是 Rust 的一站式工具,负责构建、运行、测试和管理项目。你几乎所有事情都会用cargo来做。
第 3 步:创建你的第一个项目
Section titled “第 3 步:创建你的第一个项目”不用手动创建文件,让 cargo 帮你把项目搭好:
cargo new hello_rustcd hello_rust这会创建一个名为 hello_rust 的文件夹,里面有一个 Rust 项目需要的一切:
hello_rust/├── Cargo.toml # 项目设置和依赖└── src/ └── main.rs # 你的代码写在这里Cargo.toml描述你的项目(名称、版本,以及用到的库)。src/main.rs是程序的起始文件,cargo甚至已经帮你在里面写好了一个 Hello World。
第 4 步:运行它
Section titled “第 4 步:运行它”在项目文件夹里运行:
cargo run你会看到 cargo 先编译项目,然后打印:
Hello, world!就这样,你刚刚构建并运行了一个 Rust 程序。
读懂这段代码
Section titled “读懂这段代码”打开 src/main.rs,你会看到:
fn main() { println!("Hello, world!");}fn main() { ... }定义了主函数,每个 Rust 程序都从这里开始运行。println!("...")在屏幕上打印一行文字。
试着改一下这条消息,再运行一次 cargo run:
fn main() { println!("你好,这是我的第一个 Rust 程序!");}输出:
你好,这是我的第一个 Rust 程序!cargo run 与 cargo build
Section titled “cargo run 与 cargo build”下面这几个命令你会经常用到:
| 命令 | 作用 |
|---|---|
cargo run |
编译并运行你的程序(开发时最方便) |
cargo build |
只编译,生成的程序放在 target/debug/ 里 |
cargo build --release |
编译一个经过优化、运行更快的版本,用于发布 |
出错的时候:读懂编译器报错
Section titled “出错的时候:读懂编译器报错”你一定会遇到编译器报错,而且天天都会,哪怕写了好几年 Rust 也一样。这并不说明你不行,而是编译器在尽职尽责。我们故意制造一个错误,这样第一次遇到时就没那么吓人了。
把 src/main.rs 里 println! 的 ! 删掉:
fn main() { println("Hello, world!");}运行 cargo run,你会得到:
error[E0423]: expected function, found macro `println` --> src/main.rs:2:5 |2 | println("Hello, world!"); | ^^^^^^^ not a function |help: use `!` to invoke the macro |2 | println!("Hello, world!"); | +从上往下读:
- 第一行说明出了什么问题:Rust 期望这里是一个函数(expected function),但
println是一个宏(macro,下一页会讲它是什么意思)。 --> src/main.rs:2:5告诉你出错的位置:文件src/main.rs,第 2 行,第 5 列。^^^^^^^标记指向出问题的那段代码。help:部分经常会给出修复方法。这里它甚至用一个+标出了漏掉的!。
把 ! 加回去,一切又恢复正常:
fn main() { println!("Hello, world!");}输出:
Hello, world!第 5 步:配置你的编辑器(推荐)
Section titled “第 5 步:配置你的编辑器(推荐)”想要最好的体验,就在编辑器里安装 rust-analyzer 扩展。它会在你打字时提供自动补全、行内报错提示和类型提示。
- VS Code:安装 rust-analyzer 扩展
- 其他大多数编辑器(JetBrains、Neovim 等)也支持 rust-analyzer。
1. 打印三行
Section titled “1. 打印三行”让你的程序打印三行:你的名字、你最喜欢的食物,以及 我刚刚运行了 Rust!。提示:一个 println! 打印一行,所以要用三个。
查看答案
fn main() { println!("我叫小明"); println!("我喜欢吃饺子"); println!("我刚刚运行了 Rust!");}输出:
我叫小明我喜欢吃饺子我刚刚运行了 Rust!2. 一个小横幅
Section titled “2. 一个小横幅”打印一个像下面这样的小横幅:标题的上方和下方各有一行 = 号。然后故意删掉一个 !,运行 cargo run,读一读报错,再把它修好。提示:= 组成的那两行也只是 println! 里的普通文字,和其他消息没什么两样。
查看答案
这里的标题保留英文:中文字符在屏幕上占两个字符宽,会让标题和 = 线对不齐。
fn main() { println!("=============="); println!(" HELLO RUST"); println!("==============");}输出:
============== HELLO RUST==============- 从 rustup.rs 用
rustup安装 Rust。 - 用
rustc --version和cargo --version确认安装成功。 - 用
cargo new创建项目,用cargo run运行它。 - 一个项目包含
Cargo.toml(设置)和src/main.rs(你的代码)。 - 编译器报错要从上往下读:出了什么问题、在哪里,往往还有一个给出修复方法的
help:。 - 在编辑器里装上 rust-analyzer,写代码会顺畅很多。
小测验
1. 哪个工具负责安装 Rust 编译器和 cargo,并让它们保持最新?
2. 哪个文件描述了 Rust 项目的名称、版本和依赖?
3. 哪个命令只编译程序而不运行它?
得分: 0 / 3
- 《Rust 程序设计语言》简体中文版:安装:在各个平台上安装 Rust、用
rustup update更新,以及常见问题排查。 - 《Rust 程序设计语言》简体中文版:Hello, Cargo!:进一步了解
cargo new、cargo build、cargo run和cargo check。 - First Steps with Cargo(The Cargo Book)(英文):
cargo new会创建哪些东西,Cargo.toml的每一行又是什么意思。 - The rustup book(英文):安装额外的工具链、更新 Rust,以及在 stable 和 nightly 之间切换。
- rust-analyzer(英文):VS Code、Neovim、Emacs 等编辑器的配置指南。