自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Rust 又發(fā)布新的 1.81.0 版本了!速度真快

開發(fā)
在 2024 年 9 月 5 日,Rust 團(tuán)隊(duì)又發(fā)布 Rust 1.81.0 新版本了,發(fā)布速度扛扛的,該版本都有哪些變化呢。

在 2024 年 9 月 5 日,Rust 團(tuán)隊(duì)又發(fā)布 Rust 1.81.0 新版本了,發(fā)布速度扛扛的,該版本都有哪些變化呢。

對(duì)于喜歡嘗新的伙伴,可以體驗(yàn)到更多的創(chuàng)新和改進(jìn)了。

老規(guī)則,如果你渴望嘗試最新版本的 Rust,只需通過(guò) rustup 工具即可輕松升級(jí)。

rustup update stable

新的 1.81.0 穩(wěn)定版包含哪些內(nèi)容呢!

core::error::Error

在 1.81.0 版本中,穩(wěn)定了 Error 中的特征 core ,現(xiàn)在允許在庫(kù)中使用該特征 #![no_std],這意味著即使在不使用標(biāo)準(zhǔn)庫(kù)的情況下,開發(fā)者也可以使用標(biāo)準(zhǔn)的錯(cuò)誤處理機(jī)制。

例如:

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),
    }
}

新的排序?qū)崿F(xiàn)

在 Rust 1.81.0 中,標(biāo)準(zhǔn)庫(kù)中的排序?qū)崿F(xiàn)進(jìn)行了更新,主要是以提高運(yùn)行時(shí)性能和編譯時(shí)間,此外,該新的排序算法還會(huì)檢測(cè)無(wú)效的排序?qū)崿F(xiàn)并引發(fā)的Panic,而不是返回隨機(jī)排序的結(jié)果。

也就是實(shí)現(xiàn)了一個(gè)不符合排序規(guī)則的自定義排序(如違反 PartialOrd 或 Ord 的要求),Rust 不會(huì)返回一個(gè)錯(cuò)誤的排序結(jié)果,而是通過(guò)觸發(fā) Panic 來(lái)提醒你修復(fù)排序邏輯,提高了代碼的健壯性。

extern "C" 函數(shù)中未捕獲的 Panic 被中止

Rust 與 C 互操作中,在之前的 Rust 版本中,如果在 extern "C" 函數(shù)中發(fā)生了 panic,可能會(huì)嘗試進(jìn)行堆棧展開(stack unwinding),這在 C 語(yǔ)言環(huán)境下是不安全的。

然后,到了 Rust 1.81.0 版本,如果你未捕獲的 panic 發(fā)生,程序會(huì)直接中止,防止?jié)撛诘牟话踩袨?。要處理這種堆棧展開的情況,提供了 "C-unwind" ABI,它允許在安全處理 panic 時(shí)跨越 Rust 和 C 的邊界,這樣就能解決長(zhǎng)期存在的健全性問(wèn)題。

責(zé)任編輯:趙寧寧 來(lái)源: 碼農(nóng)漁夫
相關(guān)推薦

2024-06-24 13:30:07

2021-05-12 12:49:42

Rust開發(fā)團(tuán)隊(duì)版本

2014-04-04 10:02:34

RustMozilla

2025-02-20 12:00:13

React前端React 19

2023-07-18 19:11:21

配置信令系統(tǒng)

2024-05-21 13:57:51

2011-08-22 20:18:39

江民科技網(wǎng)警

2024-03-11 15:47:11

RustPython代碼

2020-11-09 14:17:13

Rust編碼語(yǔ)言

2019-04-23 10:22:08

蘋果 iOS系統(tǒng)

2021-09-09 18:12:22

內(nèi)存分段式網(wǎng)絡(luò)

2017-09-13 15:01:00

墨跡天氣吸金

2018-03-05 10:27:47

電腦卡頓舊電腦

2024-01-09 11:52:23

Rust開發(fā)函數(shù)

2023-06-02 18:32:00

Rust項(xiàng)目開源

2022-12-19 07:38:02

Rust項(xiàng)目代碼

2021-11-05 11:10:13

MyBatisSQL查詢

2023-11-18 11:37:34

Blender開源

2022-05-20 09:32:48

Inkscape開源

2023-11-08 16:18:21

Fedora 39Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)