Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Yeni Anahtar Kelimeler

Minimum Rust version: 1.27

Özet

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
  • &Trait ve &mut Trait, &dyn Trait ile &mut dyn Trait olur

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).