首页 / Rust 入门教程 / Rust 是什么:为什么值得学

Rust 入门教程

Rust 是什么:为什么值得学

本教程共 78 篇 · 第 1 篇 · 更新于 2026-08-08 · 约 7 分钟阅读

RustRust 入门教程Rust 是什么内存安全系统编程无畏并发

本节目标:搞懂 Rust 的定位,以及它凭什么在”安全、性能、并发”三件事上同时做到位,让你判断是否值得投入。

Rust 是一门系统级编程语言。它和 C、C++ 站在同一片赛场——写操作系统、驱动、浏览器引擎、数据库、游戏内核这类离硬件很近的程序。但它跟 C/C++ 最大的不同是:你写代码时,编译器会在编译阶段就拦下大量会导致程序崩溃或出安全漏洞的错误。你不用等到程序上线、用户数据被拖库之后,才发现自己踩了空指针。

很多人第一次听说 Rust,反应都是:“又一门新语言?我学不动了。“这种顾虑很正常。但 Rust 值得我们花时间,因为它解决的是别的语言长期以来只能二选一的矛盾:要么快但不安全,要么安全但慢。

1-1 它解决的真实痛点

写 C/C++ 的人都知道”段错误”和”内存泄漏”是家常便饭。程序跑着跑着突然崩了,或者占着内存不释放越跑越慢。这些问题在大型项目里尤其要命,因为一个模块改了一行,另一个毫不相干的模块就跟着出问题。

传统做法靠两样东西兜底:一是程序员自己小心,靠经验和代码审查;二是运行时加一个”垃圾回收器”(GC),比如 Java、Go、Python 都这么干。GC 会在程序运行期间定期检查哪些内存不再用,自动回收。这确实安全省心,代价是运行时多了开销,程序可能在不该停顿的时候停顿一下。

Rust 选了第三条路:把内存管理的安全检查提前到编译期。编译器替你盯着”这块内存谁在用、什么时候该释放”,检查通过了才让你编译通过。结果就是——没有 GC,也几乎不会有内存安全问题。这套机制核心叫所有权(Ownership),后面的章节会专门讲。

Note

Rust 不是要取代所有语言。做网站后台用 Go、Java 很顺手;做数据分析用 Python 很舒服。Rust 真正的优势区,是那些既要求性能又容不得崩溃的地方。

1-2 优势一:内存安全,且不靠垃圾回收

这是 Rust 最被津津乐道的一点。别的语言要么靠 GC(运行时帮你收内存),要么靠程序员手工 malloc/free。Rust 靠编译器的所有权规则,在编译时就把”用了已释放的内存""两块代码同时改同一块数据”这类 bug 挡在门外。

举个接地气的例子:你向朋友借了一本书(拿到一块内存的使用权)。C 语言的规则是”书什么时候还、还不还,全看你自觉”,忘了还可能把书弄丢。带 GC 的语言是”图书馆管理员每隔一会儿来巡场,看谁不看了就收走”,但巡场会打断你看书。Rust 是”你和朋友签了借条,规定好这本书只能由一个人在特定时间段持有,到期必须还”,规则写死在契约(编译器检查)里,谁都赖不掉。

正因为有这套机制,Rust 程序极少出现”空指针解引用""悬垂指针""数据竞争”这类经典崩溃。这在安全敏感的场合(比如处理用户密码、网络请求)价值巨大。

1-3 优势二:性能直逼 C/C++

Rust 编译出来的是机器码,没有虚拟机、没有 GC 拖后腿,运行速度和 C/C++ 基本同一档次。很多 benchmark 显示,Rust 写的程序性能和等效的 C++ 程序相差无几,某些场景甚至更优。

这意味着你用 Rust 写的东西,可以用在性能极度敏感的地方:游戏引擎、高频交易系统、嵌入式设备、浏览器内核(Firefox 的 Servo 引擎就是 Rust 写的)。你既能拿到接近底层的控制力,又不用像写 C 那样如履薄冰。

Tip

如果你是从 Python、JavaScript 转过来,会明显感觉 Rust”啰嗦”——要声明类型、要处理错误。这份啰嗦换来的,是运行时不再有意外停顿和崩溃,性能还高一个数量级。

1-4 优势三:无畏并发(Fearless Concurrency)

并发指的是让程序同时干多件事,比如一边下载文件一边响应用户点击。并发难写,难在多个任务抢同一份数据时容易出问题(术语叫数据竞争)。C++ 里并发 bug 极其难复现、难调试。

Rust 的所有权规则天然能管住并发。“同一份数据,要么只能有一个人改,要么可以多人同时只读”——这个约束编译器帮你强制检查。所以官方有句口号叫”无畏并发”:你敢放心地写多线程代码,因为大部分并发错误在编译期就被拦下了,而不是上线后半夜告警。

1-5 谁在用 Rust

不是小众玩具。Dropbox 用它做文件同步的核心、Cloudflare 用它写边缘网络组件、Discord 用它处理高并发消息、微软在部分 Windows 组件里引入 Rust 来减少安全漏洞。就连 Linux 内核也从 6.1 版本起接纳了 Rust 编写的驱动模块。

这些公司用 Rust,不是赶时髦,而是算过账:前期多花点开发时间,换来后期少得多的线上事故和运维成本,长期更划算。

1-6 一个容易混淆的概念:Edition

Rust 每 6 周发布一个小版本(比如 1.97.1),但不会搞破坏兼容性的”2.0 大版本”。新语法、新特性通过一个叫 Edition 的机制渐进引入。常见 Edition 有 2015、2018、2021、2024。

Edition 可以理解成”语法方言的版本”。你写代码时声明用哪个 Edition,编译器就按那套规则理解你的代码。本教程以最新的 2024 Edition 为准。绝大多数情况下你不需要关心 Edition 差异,只在用到某个老语法、或读老教程时才会碰到。后续章节讲到具体历史差异时,我会单独点出来。

1-7 学 Rust 难吗

坦率说,Rust 的学习曲线比 Python 陡。最劝退的就是所有权、借用、生命周期这三座大山——它们正是 Rust 安全机制的基石,也是它和别的语言最大的思维差异。

但别被吓住。这三座山集中在中前段,翻过去之后,后面的枚举、结构体、trait 反而顺。而且一旦你习惯了编译器的”唠叨”,它会把你养成一个更严谨的程序员。本教程会把这些难点拆碎了、用大白话慢慢讲,跟着节奏走就行。

Warning

网上有些老教程基于 2015 或 2018 Edition,个别写法(比如旧版宏、旧闭包捕获)在新版会报错。遇到编译不过,先确认对方的 Edition 是不是太旧。本教程统一 2024 Edition。

1-8 小结:它适合你吗

如果你符合下面任意一条,Rust 值得学:想写高性能且可靠的基础软件;受够了 C/C++ 的内存 bug 又舍不得它的速度;想进大厂做系统/基础设施方向;或者单纯想逼自己把编程基本功打扎实。

下一章我们就动手装工具链,把 Rust 跑起来。先别想太深,先把环境搭好,让第一个程序打印出”Hello, world!”,那种即时反馈最能帮你坚持下来。

上一篇
已经是第一篇啦
下一篇
安装 Rust 工具链