系統程式語言發布 ,由 Mozilla 專案創建。 該語言專注於記憶體安全,提供自動記憶體管理,並提供在不使用垃圾收集器和 .
Rust 的自動記憶體管理使開發人員免於指標操作,並防止低階記憶體操作所造成的問題,例如釋放後記憶體存取、空指標取消引用、緩衝區溢位等。 正在開發一個套件管理器來分發庫、確保組裝並管理專案的依賴關係。 ,讓您一鍵取得程式所需的庫。 支援儲存庫來託管庫 .
主要的 :
- 支援匹配切片部分的範本(動態數組、切片)。以前,允許精確匹配,但現在可以使用標記為“..”的結構來覆蓋數組的其餘元素。例如:
fn foo(字: &[&str]) {
匹配單字{// 檢查陣列的起始元素並忽略
跟隨它們的元素
[“你好”,“世界”,“!”,..] => println! (“你好世界!”),// 檢查前兩個元素“Foo”和“Bar”,其餘的不重要
["Foo", "Bar", ..] => println!("Baz"),// 忽略所有內容,但最後一個元素必須是「!」。
[.., “!”] => println!(“!!!”),// 在開始切片中,我們包含最後一個元素之外的所有內容,該元素應該是“z”
[start @ .., "z"] => println!("開頭為:{:?}", start),// 在最後一個切片中,我們放置除第一個元素之外的所有內容,第一個元素應該是「a」。
["a", end @ ..] => println!("以:{:?} 結尾", end),休息 => println!("{:?}", 休息),
}
} - 新增了一個新的巨集“matches!”,它將表達式和模式作為輸入,如果模式與表達式匹配,則傳回“true”。模板可以使用“|”操作而如果」。
匹配 self.partial_cmp(其他) {
一些(更少)=> true,
_ => 假,
}匹配!
令 foo = 'f';
斷言!讓酒吧=一些(4);
斷言! - 使用不正確時顯示緊急訊息
類型 Option 和 Result,現在顯示行號,其中包含指向進行有問題的調用的程式碼的鏈接,而不是指向在 libcore 中實現調用的程式碼的鏈接。例如,此變更會影響對 Option::None 的 unwrap 和 Expect 的調用,或在 Result 類型上使用 unwrap_err、expect、expect_err 和類似方法時崩潰。 - Cargo 套件管理器提供了將「proc_macro crate」自動替換為具有流程巨集的套件的「extern」區塊的功能。此變更允許將「use」指令套用至過程宏,而無需在程式碼中指定「extern crate proc_macro;」。例如,如果程式使用“use proc_macro::TokenStream;”行,那麼如果從中刪除“extern crate proc_macro;”,程式碼現在將繼續工作。
- 標準庫的功能得到了擴展。在 iter:: 空 發送和同步支援任何 T 值。
呼叫 Pin::{map_unchecked, map_unchecked_mut} 不必為“Sized”實作傳回類型值。
在 io:: 遊標中 偏方程式和方程式。 「const」屬性決定了在任何上下文中代替常數使用的可能性, 對於 Layout::new 方法。 - API 的新部分已轉移到穩定類別,包括穩定的 CondVar::wait_while、CondVar::wait_timeout_while、
調試映射::鍵、調試映射::值、
手動Drop::take,
ptr::slice_from_raw_parts_mut 和 ptr::slice_from_raw_parts。 - Error::description 方法已被棄用。
- 為armv7a-none-eabi和riscv64gc-unknown-linux-gnu平台提供二級支援。已提供對 riscv64gc-unknown-linux-gnu 平台標準庫的支援。
蘋果32位元平台 高達第三級支持,這意味著基本支持,但沒有自動化測試和官方版本的發布。支援降級是由於 Apple 不再支援 32 位元平台。
來源: opennet.ru
