Rust 1.76.0 已发布

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

Rust 团队很高兴发布 Rust 的新版本 1.76.0。 Rust 是一种编程语言,使每个人都能够构建可靠且高效的软件。

如果您通过 rustup 安装了以前版本的 Rust,则可以通过以下方式获取 1.76.0:

rustup update stable

如果您还没有,您可以从我们网站上的相应页面获取rustup,并查看1.76.0 的详细发行说明

如果您想通过测试未来的版本来帮助我们,您可以考虑在本地更新以使用测试版频道 ( rustup default beta) 或夜间频道 ( rustup default nightly)。请报告您可能遇到的任何错误!

1.76.0 稳定版中有什么

这个版本相对较小,但一如既往,即使是渐进的改进也会带来更大的整体。这篇文章强调了其中一些变化,其他变化可能会满足更多的利基需求。

ABI 兼容性更新

函数指针文档中新的ABI 兼容性部分描述了函数签名与 ABI 兼容的含义。其中很大一部分是参数类型和返回类型的兼容性,以及当前被认为在 Rust 中兼容的类型的列表。在大多数情况下,本文档不会添加任何新的保证,仅描述现有的兼容性状态。

一项新的补充是,现在保证char和 与u32ABI 兼容。它们始终具有相同的大小和对齐方式,但现在即使在函数调用 ABI 中,它们也被认为是等效的,与上面的文档一致。

从参考文献中输入名称

出于调试目的,any::type_name::<T>()自 Rust 1.38 起可以返回类型的字符串描述T,但这需要显式类型参数。指定该类型并不总是那么容易,特别是对于像闭包这样的不可命名类型或不透明的返回类型。新功能any::type_name_of_val(&T)提供了一种从任何类型引用中获取描述性名称的方法。

fn get_iter() -> impl Iterator<Item = i32> {
    [1, 2, 3].into_iter()
}

fn main() {
    let iter = get_iter();
    let iter_name = std::any::type_name_of_val(&iter);
    let sum: i32 = iter.sum();
    println!("The sum of the `{iter_name}` is {sum}.");
}

当前打印:

The sum of the `core::array::iter::IntoIter<i32, 3>` is 6.

稳定的 API

其他变化

查看RustCargoClippy中发生的所有变化。

1.76.0 的贡献者

许多人齐心协力创建了 Rust 1.76.0。没有你们所有人,我们不可能做到这一点。谢谢!

职场攻略与副业指南,成就你的IT人生。快扫描下面二维码关注吧!

ba1e8177db424136a3b666cf83ea7eef.png

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值