Yeni Anahtar Kelimeler
Özet
dyn, katı anahtar kelime oldu; 2015’te ise zayıf anahtar kelime olarak davranıyordu.asyncveawait, katı anahtar kelimelerdir.try, ayrılmış bir anahtar kelimedir.
Gerekçe
Trait nesneleri için dyn Trait
dyn Trait özelliği, trait nesnelerini kullanmanın yeni sözdizimidir. Kısaca:
Box<Trait>,Box<dyn Trait>olur&Traitve&mut Trait,&dyn Traitile&mut dyn Traitolur
Ve benzeri dönüşümler yapılır. Kod üzerinde şöyle görünür:
#![allow(unused)]
fn main() {
trait Trait {}
impl Trait for i32 {}
// eski
fn birinci_fonksiyon() -> Box<Trait> {
unimplemented!()
}
// yeni
fn ikinci_fonksiyon() -> Box<dyn Trait> {
unimplemented!()
}
}
Hepsi bu kadar.
Neden?
Trait nesneleri için yalnızca trait adını kullanmak iyi bir karar olmadı. Mevcut sözdizimi, deneyimli kullanıcılar için bile çoğu zaman belirsiz ve kafa karıştırıcıydı. Üstelik bu yaklaşım, alternatiflerinden daha sık kullanılmayan; bazen daha yavaş çalışan ve çoğu durumda alternatifleri kullanılabiliyorken kendisi hiç kullanılamayan bir özelliği öne çıkarıyordu.
Üstelik impl Trait geldikten sonra “impl Trait ile dyn Trait” karşılaştırması,
“impl Trait ile Trait” karşılaştırmasına göre çok daha simetrik ve bu yüzden
daha anlaşılır hale geldi. impl Trait burada açıklanıyor.
Bu nedenle yeni sürümde, trait nesnesine ihtiyaç duyduğunuz yerlerde yalnızca
Trait yazmak yerine dyn Trait kullanmanız gerekir.
async ve await
Bu anahtar kelimeler, Rust’ın async-await özelliğini hayata geçirmek için ayrıldı. Söz konusu özellik daha sonra 1.39.0 kararlı sürümünde yayımlandı.
try anahtar kelimesi
try anahtar kelimesi, try bloklarında kullanılmak üzere ayrılmıştır.
Bu bloklar, bu metin yazıldığı sırada henüz kararlı hale getirilmemişti
(takip konusu).