Rust 1.58.0 現已釋出,該版本帶來了在格式字串中捕獲的識別符號、改變了 Windows 上的 Command 搜尋路徑,在標準庫中增加了 #[must_use] 註釋,以及一些新的庫穩定性。如果你此前已通過 rustup 安裝了以前的 Rust 版本,執行以下命令即可升級至最新版本:
rustup update stable
具體更新內容包括:
格式字串中捕獲的識別符號
格式字串現在可以通過在字串中寫入 {ident} 來捕獲引數。格式長期以來接受位置引數(可選地通過索引)和命名引數,例如:
println!("Hello, {}!", get_person()); // implicit position
println!("Hello, {0}!", get_person()); // explicit index
println!("Hello, {person}!", person = get_person()); // named
現在命名引數也可以從周圍的範圍中捕獲,例如:
let person = get_person();
// ...
println!("Hello, {person}!"); // captures the local `person`
這也可以用於格式化引數:
let (width, precision) = get_format();
for (name, score) in get_scores() {
println!("{name}: {score:width$.precision$}");
}
格式字串只能捕獲普通識別符號,不能捕獲任意路徑或表示式。對於更復雜的引數,要麼先將它們分配給本地名稱,要麼使用舊name = expression
樣式的格式化引數。
減少 WindowsCommand
搜尋路徑
在 Windows targets 上,std::process::Command 將不再搜尋當前目錄中的可執行檔案。Rust 現在在沒有當前目錄的情況下執行自己的搜尋,並且不包括舊的 16 位目錄,因為沒有 API 來發現它的位置。所以 Windows 上 Rust 的新Command
搜尋順序是:
PATH
子環境變數中列出的目錄。- 載入應用程式的目錄。
- 32 位 Windows 系統目錄。
- Windows 目錄。
PATH
環境變數中列出的目錄。
Non-Windows targets 繼續使用其特定於平臺的行為,通常只考慮子或父PATH
環境變數。
標準庫中更多的#[must_use]
Library 在 2021 年 10 月被批准,以稽核和擴大 #[must_use] 在整個標準庫中的應用,涵蓋更多以返回值為主要作用的 functions。這類似於 function purity 的想法,但比真正的語言特性要寬鬆。其中一些新增功能在
以下以前穩定的功能現在是 更多詳情可。const
。