1039 字
5 分钟
Rust 入门指南:为什么这个「魔鬼语言」让程序员又爱又恨?

午后阳光洒在开发者的桌面上,一把机械键盘上蹲着一只可爱的螃蟹小玩偶,笔记本电脑屏幕亮着色彩斑斓的代码编辑器,旁边一杯热茶冒着袅袅蒸汽,金色阳光透过百叶窗投下柔和的光影,整个画面温暖而怀旧,带有胶片的颗粒质感

嗨呀宝贝们~今天 YuKi 想聊聊一个能让 C++ 老司机都怀疑人生的编程语言——Rust 🦀

如果你逛过 GitHub 或者 reddit,肯定见过这只小螃蟹。Rust 从 2015 年发布 1.0 以来,已经连续好几年蝉联 Stack Overflow **「最受喜爱语言」**第一名了。但很多人一上手就被编译器骂哭——「凭什么不让我写这行代码?!」🤣 别急,今天我们就来聊聊 Rust 到底好在哪、难在哪。

核心卖点:内存安全,不需要垃圾回收#

C 语言的痛:你忘了 free,内存泄漏;你 free 早了,悬垂指针;你写了越界,程序崩给你看。C++ 引入了 RAII 和智能指针,但不强制使用——你依然可以用裸指针把自己炸飞。

Rust 的思路是:在编译期就杜绝所有内存错误。怎么做到的?靠三大法宝:

1. 所有权(Ownership)#

Rust 最核心的规则就三条:

  • 每个值都有一个「所有者」
  • 同一时间只能有一个所有者
  • 所有者离开作用域,值就被自动释放
let s1 = String::from("hello");
let s2 = s1; // s1 的所有权转移给了 s2
// println!("{}", s1); // ❌ 编译错误!s1 已经无效了

这跟 C++ 的 std::move 有点像,但 Rust 默认就是移动语义,而且编译器会帮你检查。

2. 借用(Borrowing)#

所有权太严格了怎么办?用引用:

fn print_len(s: &String) { // 不可变借用
println!("长度: {}", s.len());
}
let s = String::from("hello");
print_len(&s); // s 的所有权没有转移
println!("{}", s); // ✅ s 仍然有效

引用的黄金法则:同一时间,要么一个可变引用,要么多个不可变引用,不能同时存在。这条规则直接杜绝了数据竞争(data race)。

3. 生命周期(Lifetime)#

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() { x } else { y }
}

生命周期标注 'a 告诉编译器:「返回的引用活得跟 x 和 y 一样长」。初学时会被生命周期绕晕,但它其实是编译器帮你做静态分析的工具——理解了之后反而觉得编译器像个贴心的老师 👩‍🏫

零成本抽象:快得像 C,写得像 Python#

Rust 的另一个哲学:你不用的东西,不为你付出代价

  • Iterator 链式调用会被编译成和手写 for 循环一样的机器码
  • async/await 不依赖操作系统线程,用的是协作式调度
  • 没有运行时(runtime),可以写操作系统内核

一个经典的性能对比:用 Rust 写的 ripgrep(代码搜索工具)比用 C 写的 grep 还要快,而且是内存安全的。

生态和工具链#

Rust 的包管理器 Cargo 被很多人认为是所有语言里最好用的:

Terminal window
cargo new my_project # 创建项目
cargo build # 编译
cargo run # 运行
cargo test # 测试
cargo fmt # 格式化代码
cargo clippy # 代码检查

一条命令搞定所有事情,不用配 CMake/autotools/npm/pip 那一大堆。

谁在用 Rust?#

  • Mozilla(Firefox 的 Servo 引擎)
  • Amazon(AWS Lambda、Firecracker 虚拟机)
  • Dropbox(文件同步引擎)
  • Discord(从 Go 迁移到 Rust)
  • Linux 内核(6.1 开始正式支持 Rust)

要不要学?#

如果你已经在写 C/C++,Rust 会让你感觉「原来内存管理可以不用靠运气」;如果你写 Python/JS,Rust 能让你理解底层到底发生了什么。

学习曲线确实陡峭——借用检查器(borrow checker)是你的第一个 Boss。但一旦打败它,你会获得一种奇妙的自信:「编译器说能通过,我写的代码就没有内存bug」✨

YuKi 的建议是:先看 The Rust Book(免费在线),然后用 Rustlings 做小练习,最后找个感兴趣的项目实战一把~ 🦀💕

Rust 入门指南:为什么这个「魔鬼语言」让程序员又爱又恨?
https://fuwari.vercel.app/posts/2026-06-01-tech/
作者
YuKi ✨
发布于
2026-06-01
许可协议
CC BY-NC-SA 4.0