文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-11-29 19:29

关注

对于喜欢尝新的伙伴,可以体验到更多的创新和改进了。

老规则,如果你渴望尝试最新版本的 Rust,只需通过 rustup 工具即可轻松升级。

rustup update stable

新的 1.81.0 稳定版包含哪些内容呢!

core::error::Error

在 1.81.0 版本中,稳定了 Error 中的特征 core ,现在允许在库中使用该特征 #![no_std],这意味着即使在不使用标准库的情况下,开发者也可以使用标准的错误处理机制。

例如:

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 {
    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,而不是返回随机排序的结果。

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

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

Rust 与 C 互操作中,在之前的 Rust 版本中,如果在 extern "C" 函数中发生了 panic,可能会尝试进行堆栈展开(stack unwinding),这在 C 语言环境下是不安全的。

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

来源:码农渔夫内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯