Rust 1.43.0 發(fā)布
Rust 1.43.0 現(xiàn)已發(fā)布。這是一個(gè)相當(dāng)小的版本,沒(méi)有新的主要功能,提供了一些新的穩(wěn)定的 API、一些編譯器的性能改進(jìn)以及與宏相關(guān)的小功能。一些具體更新內(nèi)容如下:
item 碎片
在宏中,可以使用item片段將項(xiàng)目插值到特征、impls 和 extern blocks 的主體中。例如:
macro_rules! mac_trait { ($i:item) => { trait T { $i } }}mac_trait! { fn foo() {}}
這將產(chǎn)生:
trait T { fn foo() {}}
圍繞原語(yǔ)的類(lèi)型推斷
圍繞原語(yǔ),引用和二進(jìn)制操作的類(lèi)型推斷得到了改進(jìn)。代碼示例使這一點(diǎn)更容易理解:該代碼無(wú)法在 Rust 1.42 上編譯,但是可以在 Rust 1.43 上編譯。
let n: f32 = 0.0 + &0.0;
在 Rust 1.42 中,用戶(hù)會(huì)得到一個(gè)錯(cuò)誤,提示“ hey, I don't know how to add an f64 and an &f64 with a result of f32 “?,F(xiàn)在,該算法正確地確定了0.0和&0.0應(yīng)該改為f32。
用于測(cè)試的新 Cargo 環(huán)境變量
為了幫助進(jìn)行集成測(cè)試,Cargo 將設(shè)置一些新的環(huán)境變量。
Library changes
現(xiàn)在,用戶(hù)可以直接在 floats 和 integers 上使用關(guān)聯(lián)的常量,而不必導(dǎo)入模塊。
有一個(gè)新primitive 模塊可以重新導(dǎo)出 Rust 的原始類(lèi)型。當(dāng)用戶(hù)編寫(xiě)宏并要確保類(lèi)型不被遮蓋時(shí),這可能很有用。
此外,還穩(wěn)定了六個(gè)新的 API:
-
Once::is_completed
-
f32::LOG10_2
-
f32::LOG2_10
-
f64::LOG10_2
-
f64::LOG2_10
-
iter::once_with
以及一些其他變化,更多詳情可查看發(fā)布說(shuō)明:https://blog.rust-lang.org/2020/04/23/Rust-1.43.0.html