Rust 更新还挺频繁的,连1.90都出来了,但作为新版本,1.90有啥坑还不知道,先让子弹飞一会。那还是1.89更稳更值得关注。

写代码之前,别让环境配置劝退你
在聊 1.89 的新特性之前,咱先聊个搭建环境的问题。
官方推荐的 rustup
是挺方便,但做项目光有它可不够。电脑上是不是还得装个 Nginx、PostgreSQL、Redis 之类的?这一套东西在自己电脑上攒起来,说实话挺折腾人的。一会儿端口占用了,一会儿版本不对了,各种环境变量配来配去,一下午时间可能就耗进去了,代码一行没写,心态先崩了。
我推荐使用ServBay,这是开发环境的全家桶,想安装啥,直接勾选就行。Rust、Nginx、数据库、Redis,一键安装好Rust,版本管理得明明白白。再也不用自己去网上搜教程、手动敲命令了。它把这些烦人的准备工作都干了,我们就能踏踏实实地写代码。如果你也觉得配环境头大,真心可以试试这个。

好了,一起来看看 Rust 1.89 有哪些新的关注点。
常量泛型:编译器更懂你,代码能少写就少写
Rust 常量泛型是个很实用的功能,尤其是在处理固定大小数组的时候,性能高,类型也安全。但之前写起来总感觉有点啰嗦。
比如,想整个 1024
大小的字节数组,得这么写:
rust
// ❌ 1.89 之前:总得写两遍,看着有点烦
let buffer: [u8; 1024] = [0; 1024];
1024
这个数,类型里写一遍,初始化值的时候还得再写一遍。要是改个需求,把 1024
换成 2048
,一不留神就可能只改了一处,这就埋雷了。
Rust 1.89 就加了个很贴心的改进,允许你用下划线 _
让编译器自己去看上下文,把数给填上。
rust
// ✅ 1.89 之后:写一遍就行,省心多了
let buffer: [u8; 1024] = [0; _]; // 编译器一看类型是 1024,就懂了
这样代码更干净,出错的概率也小了。这种改进虽然小,但每天都在用,日积月累下来,提升的幸福感是很实在的。
生命周期:编译器报错,终于不再像天书
说到生命周期,估计不少人都头疼过。这东西是 Rust 安全的根本,但学习曲线也确实陡。最让人崩溃的,就是编译器报错连看都看不懂。
还有就是一个函数的输入和输出,生命周期明明是绑定的,但代码上却看不出来。
rust
// 以前这样写,编译器不报错,但人看着费劲
fn items(scores: &[u8]) -> std::slice::Iter<u8> {
scores.iter()
}
这里返回的 std::slice::Iter<u8>
实际上是带生命周期的,而且它的命完全捏在输入的 scores
手里。但函数签名却压根儿没提这事。这就很坑了,尤其是在维护别人代码的时候,很容易忽略掉这个隐藏的依赖关系。
现在,Rust 1.89 默认开启了一个新的代码检查 mismatched_lifetime_syntaxes
。它就是会在代码里划重点。
再遇到上面那种代码,编译器会直接出个警告,告诉你这样写让人看不明白,还贴心地建议该怎么改。
rust
// ✅ 1.89 的编译器建议你这么写,关系一目了然
fn items(scores: &[u8]) -> std::slice::Iter<'_, u8> {
scores.iter()
}
就多了个 '_
,意思一下子就清楚了:返回的迭代器,它的生命周期跟输入参数是绑定的。这个改动,核心思想就是"代码是给人看的"。它让 Rust 最难懂的部分变得更直观,这比加十个新功能都有意义。
跨语言调用:让 Rust 更方便出圈
Rust 的一大价值,就是能写成高性能模块,给其他语言(比如 Python、Node.js)调用。WebAssembly 的兴起,更是让 Rust 在前端和边缘计算领域大放异彩。
Rust 1.89 在这方面也下了功夫,Rust更方便和其他语言交流。
-
WASM 的 C ABI 更标准: Rust 编译的 WASM 模块,跟 C/C++ 编译的模块之间交流更方便了。这样一来,它们俩协作的时候,就不容易因为底层实现的差异出一些莫名其妙的问题。
-
FFI 能直接用
i128
和u128
了:以前,想跨语言传一个 128 位的大整数(比如雪花算法生成的 ID),会很麻烦,得把它拆成两个 64 位的数传。现在不用了,可以直接在extern "C"
函数里用u128
,代码写起来顺手多了,也省去了来回拼接的开销。
这些改进,都是在为 Rust 走出自己的圈子铺路,让它能更好地融入到现有的各种技术体系里去。
总结一下
总的来说,Rust 1.89 没加什么颠覆性的语法。它的所有更新,都是比较实用的。
它在打磨我们日常编码的细节,让代码更简洁;在打磨编译器的提示,让我们少走弯路;在打磨它的兼容性,让它能胜任更多场景。这正是一个语言走向成熟的标志。
Rust 的 1.89更新真的值得关注一波。