写了一周 Rust 的感受
项目里有个 CPU 密集的小服务,Go 写出来 GC 压力有点大,就想着用 Rust 重写试试。之前一行 Rust 没写过。
前两天:想放弃
借用检查器能把人气死。明明逻辑上没问题的代码,编译就是不过。
let r = &mut v[0];
v.push(1); // error: cannot borrow `v` as mutable more than once
当时心想这不是故意找麻烦吗。后来才明白,这种代码在 C++ 里就是悬垂引用,只是编译器不告诉你。
第三天:开窍
开始理解所有权模型之后,写法就自然变了。不是"怎么绕过检查器",而是"数据本来该怎么组织"。
第五天:真香
重构的时候特别明显。改一个结构体的字段,编译器把所有受影响的地方全给你列出来。这种安全感是动态语言给不了的。
结论
- 学习曲线确实陡,但陡在前三天
- 编译通过之后基本就能跑,调试时间大幅减少
- 不是所有项目都适合,但工具类、基础设施类很合适