慢读笔记 · Slow Notes

学 Rust 三个月:所有权到底在保护什么

2026-03-14tech

很多人第一次被 Rust 的借用检查器拦下来时,会觉得它在刁难人。我也一样。直到有一天,我把一段 Python 里偶发的数据竞争 bug 用 Rust 重写,编译器直接拒绝了——它准确指出了两个线程同时持有可变引用的位置。

所有权规则其实只有三条:每个值有唯一的所有者;所有者离开作用域时值被释放;同一时间要么有多个不可变引用,要么只有一个可变引用。规则简单,但它把谁负责释放内存和谁能修改数据这两件事,从运行时挪到了编译期。

我的体会是:不要和借用检查器对抗,而是把它当成一个严格的代码评审。遇到报错时先问自己,这里的数据到底归谁?很多时候答案一清楚,设计也跟着变干净了。

三个月下来,我写 Rust 的速度大概是写 Go 的一半,但上线后的调试时间几乎为零。这个交换,对我来说是值得的。