在 2024 年 9 月 5 日,Rust 團隊又發布 Rust 1.81.0 新版本了,發布速度扛扛的,該版本都有哪些變化呢。
對于喜歡嘗新的伙伴,可以體驗到更多的創新和改進了。
老規則,如果你渴望嘗試最新版本的 Rust,只需通過 rustup 工具即可輕松升級。
rustup update stable
新的 1.81.0 穩定版包含哪些內容呢!
在 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<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,而不是返回隨機排序的結果。
也就是實現了一個不符合排序規則的自定義排序(如違反 PartialOrd 或 Ord 的要求),Rust 不會返回一個錯誤的排序結果,而是通過觸發 Panic 來提醒你修復排序邏輯,提高了代碼的健壯性。
Rust 與 C 互操作中,在之前的 Rust 版本中,如果在 extern "C" 函數中發生了 panic,可能會嘗試進行堆棧展開(stack unwinding),這在 C 語言環境下是不安全的。
然后,到了 Rust 1.81.0 版本,如果你未捕獲的 panic 發生,程序會直接中止,防止潛在的不安全行為。要處理這種堆棧展開的情況,提供了 "C-unwind" ABI,它允許在安全處理 panic 時跨越 Rust 和 C 的邊界,這樣就能解決長期存在的健全性問題。
本文鏈接:http://www.tebozhan.com/showinfo-26-112711-0.htmlRust 又發布新的 1.81.0 版本了!速度真快
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 通過 12 個示例探索 Python 列表與索引的奧秘
下一篇: 面試官:如何實現線程池任務編排?