您现在的位置是:首页 > 文章详情

Rust 1.77.0 发布

日期:2024-03-26点击:197

Rust 1.77.0 稳定版已正式发布,主要带来以下变化:

C-string literals

Rust 现在支持  C-string literals ( c"abc"),它在&'static CStr类型的内存中扩展为以 nul 字节结束的字符串。这使得编写与需要以 nul 结尾的字符串的外语接口互操作的代码变得更加容易,并且在编译时执行所有相关的错误检查(例如,缺少内部 nul 字节)。

Support for recursion in async fn

由于编译器限制,异步函数以前无法调用自身。在 1.77 中,该限制已被取消;因此只要使用某种间接形式来避免函数状态的无限大,就允许递归调用。

这意味着这样的代码现在可以工作:

 async fn fib(n: u32) -> u32 { match n { 0 | 1 => 1, _ => Box::pin(fib(n-1)).await + Box::pin(fib(n-2)).await } }

offset_of!

1.77.0 稳定了struct fields​​​​​​​ 的offset_of!,它提供了对 struct 相关公共字段的字节偏移量的访问。这个宏在需要字段偏移量而又没有类型实例的情况下非常有用。用户现在可以使用offset_of!(StructName, field)访问公共字段的偏移量。

默认情况下在发布配置文件中启用 strip

未在 outputs 中启用 debuginfo 的 Cargo profiles(例如debug = 0)将默认启用strip = "debuginfo"。​​​​​​​

之所以需要这样做,主要是因为(预编译)标准库附带有 debuginfo,这意味着即使本地编译没有明确请求 debuginfo,静态链接的结果也会包含标准库中的 debuginfo。

稳定的 API

Other changes

可查看 RustCargo 和 Clippy 中发生的所有变化。

详情可查看官方公告

原文链接:https://www.oschina.net/news/284778/rust-1-77-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章