为什么学习 Rust?
> 了解 Rust 解决的核心内存安全问题、核心优势与主要行业应用场景。
为什么学习 Rust?
Rust 解决了什么问题?
程序员小王写了一段 C++ 代码:
char* buffer = new char[100];
// ... 使用 buffer
// 忘记 delete 了!
// 或者更糟:
delete buffer;
buffer[0] = 'a'; // 使用已释放的内存!程序崩溃!这种内存错误是 C/C++ 程序中最常见的 bug 来源。Rust 通过所有权系统在编译时就防止这些错误:
rust
▶ Run// Rust 代码
let buffer = String::with_capacity(100);
// 使用 buffer
// 离开作用域时,Rust 自动释放内存!
// 如果想使用已释放的内存?编译器直接报错!Rust 的核心优势
┌─────────────────────────────────────────────────────┐
│ Rust 的优势 │
├─────────────────────────────────────────────────────┤
│ │
│ 🛡️ 内存安全 无需垃圾回收,编译时检查 │
│ ⚡ 高性能 与 C/C++ 相当 │
│ 🧵 并发安全 编译时防止数据竞争 │
│ 📦 工具链 Cargo 包管理,开箱即用 │
│ 📚 文档 内置文档系统,rustdoc │
│ │
└─────────────────────────────────────────────────────┘语言对比
| 语言 | 优势 | 劣势 |
|---|---|---|
| Python | 易学易用 | 运行慢,依赖环境 |
| Java | 安全稳定 | 内存占用大(GC) |
| C/C++ | 高性能 | 内存不安全 |
| Rust | 安全 + 高性能 | 学习曲线陡峭 |
谁在使用 Rust?
| 公司/项目 | 用途 |
|---|---|
| Microsoft | Windows 内核、Azure 服务 |
| Android 系统、Fuchsia OS | |
| Amazon AWS | Firecracker、Bottlerocket |
| Meta | 后端服务、Source Control |
| Cloudflare | 网络服务、边缘计算 |
| Discord | 实时消息服务(从 Go 迁移) |
| Firefox | 渲染引擎组件 |
小结
- Rust 通过所有权系统在编译时防止内存错误,无需垃圾回收
- 兼具 C/C++ 级别性能与现代语言的安全保证
- 已被 Microsoft、Google、Amazon 等顶级公司用于生产系统
- 学习曲线陡峭,但编译器的详细错误信息是最好的老师
练习题
详见:练习题