当前位置:首页 > 科技  > 软件

Rust 又发布新的 1.81.0 版本了!速度真快

来源: 责编: 时间:2024-09-10 09:45:38 171观看
导读在 2024 年 9 月 5 日,Rust 团队又发布 Rust 1.81.0 新版本了,发布速度扛扛的,该版本都有哪些变化呢。对于喜欢尝新的伙伴,可以体验到更多的创新和改进了。老规则,如果你渴望尝试最新版本的 Rust,只需通过 rustup 工具即可

在 2024 年 9 月 5 日,Rust 团队又发布 Rust 1.81.0 新版本了,发布速度扛扛的,该版本都有哪些变化呢。XYD28资讯网——每日最新资讯28at.com

对于喜欢尝新的伙伴,可以体验到更多的创新和改进了。XYD28资讯网——每日最新资讯28at.com

XYD28资讯网——每日最新资讯28at.com

老规则,如果你渴望尝试最新版本的 Rust,只需通过 rustup 工具即可轻松升级。XYD28资讯网——每日最新资讯28at.com

rustup update stable

新的 1.81.0 稳定版包含哪些内容呢!XYD28资讯网——每日最新资讯28at.com

core::error::Error

在 1.81.0 版本中,稳定了 Error 中的特征 core ,现在允许在库中使用该特征 #![no_std],这意味着即使在不使用标准库的情况下,开发者也可以使用标准的错误处理机制。XYD28资讯网——每日最新资讯28at.com

例如:XYD28资讯网——每日最新资讯28at.com

use core::fmt;#[derive(Debug)]pub struct SimpleError;impl fmt::Display for SimpleError {    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {        write!(f, "A simple error occurred")    }}impl core::error::Error for SimpleError {}fn divide(a: i32, b: i32) -> Result<i32, SimpleError> {    if b == 0 {        Err(SimpleError)    } else {        Ok(a / b)    }}fn main() {    match divide(10, 2) {        Ok(result) => println!("10 / 2 = {}", result),        Err(_) => println!("Error: division by zero"),    }    match divide(10, 0) {        Ok(result) => println!("10 / 0 = {}", result),        Err(e) => println!("Error: {}", e),    }}

新的排序实现

在 Rust 1.81.0 中,标准库中的排序实现进行了更新,主要是以提高运行时性能和编译时间,此外,该新的排序算法还会检测无效的排序实现并引发的Panic,而不是返回随机排序的结果。XYD28资讯网——每日最新资讯28at.com

也就是实现了一个不符合排序规则的自定义排序(如违反 PartialOrd 或 Ord 的要求),Rust 不会返回一个错误的排序结果,而是通过触发 Panic 来提醒你修复排序逻辑,提高了代码的健壮性。XYD28资讯网——每日最新资讯28at.com

extern "C" 函数中未捕获的 Panic 被中止

Rust 与 C 互操作中,在之前的 Rust 版本中,如果在 extern "C" 函数中发生了 panic,可能会尝试进行堆栈展开(stack unwinding),这在 C 语言环境下是不安全的。XYD28资讯网——每日最新资讯28at.com

然后,到了 Rust 1.81.0 版本,如果你未捕获的 panic 发生,程序会直接中止,防止潜在的不安全行为。要处理这种堆栈展开的情况,提供了 "C-unwind" ABI,它允许在安全处理 panic 时跨越 Rust 和 C 的边界,这样就能解决长期存在的健全性问题。XYD28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-112711-0.htmlRust 又发布新的 1.81.0 版本了!速度真快

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 通过 12 个示例探索 Python 列表与索引的奥秘

下一篇: 面试官:如何实现线程池任务编排?

标签:
  • 热门焦点
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 余承东:AI大模型技术的发展将会带来下一代智能终端操作系统的智慧体验

    8月4日消息,2023年华为开发者大会(HDC.Together)今天正式开幕,华为发布HarmonyOS 4、全新升级的鸿蒙开发套件、HarmonyOS Next开发者预览版本等一系列
  • 郭明錤称华为和江淮汽车合作开发问界MPV,定价100万左右、计划明年量产

    8 月 1 日消息,郭明錤今天在 Medium 平台发布博文,称华为正在和江淮汽车合作,开发售价在 100 万元的问界 MPV,预计在 2024 年第 2 季度量产,销量目标为
  • 超闭合精工铰链 彻底消灭缝隙 三星Galaxy Z Flip5与Galaxy Z Fold5发布

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。三星新一代折叠屏手机采用超闭合精工铰链,让折叠后的缝隙不再可见。同时,配合处
Top