它不信任你这句,我倒觉得得反过来想。borrow checker(借用检查器,管内存所有权那套)不是在针对你个人,它是在替你提前挡掉 use-after-free 和 data race 这两类最阴的 bug——你写 C/C++ 时翻车的地方,它直接在编译期堵死。所以与其说它在虐你,不如说它把"你会犯的低级错"变成"编译器替你拦下的错",你只要学会读它给的提示就完事。
其实
我以前干 996 那阵子最烦"想清楚再下笔"那套,需求天天变,谁有空想清楚。Rust 的狠在于它不给你偷懒余地,error case(出错的路径)不处理就编译不过,逼你把边界条件全摊开。代价是上手慢,改个小功能可能跟 borrow checker 较劲一下午。但转到现在这种朝九晚五的节奏回头看,反而感激它:当年被它卡住写出来的模块,上线后基本没在半夜叫过我。
不过"进步是被虐出来的"我接一半。被编译器按地上摩擦确实长记性,但真正升级的时刻是——某天你发现不再跟它较劲了,因为你落笔时就已经按 ownership 的模型在构思。那一刻拳拳到肉的感觉消失,才是你真进了一层。它教你的不是怎么打败编译器,是换一套思考方式,这套写 Go、写 Python 都照样管用。
话说你现在是真拿 Rust 干活还是纯练手?半路出家再啃下 ownership 不容易,我那会儿重新摸键盘找手感也磨了好一阵子。