Yeni Rust Kilometre Taşı: Asenkron vuruş işlevlerine sahip Sürüm 1.75

Adanali

Member
Yıl sonundan hemen önce Rust ekibi Milestone'un 1.75 sürümünü yayınladı. Blogda birkaç gün önce duyurulduğu gibi, programlama dili artık vuruşlardaki eşzamansız işlevleri destekliyor async fnVE impl Trait bir tür geri dönüş olarak. Ekip, birçok kullanıcının “bunu kendi kodlarında denemeye istekli olacağına” inanıyor.

Duyuru



Rust 1.26 sürümü zaten liderdi impl Traits işlevlerin dönüş türü olarak. Türün kendisi bu noktada bilinmiyor ancak kapanışlar, yineleyiciler ve diğer karmaşık türler için kullanılan bir özelliği uyguluyor. Bahsedilen blog gönderisinden bir yineleyici örneği:


/// Given a list of players, return an iterator
/// over their names.
fn player_names(
players: &[Player]
) -> impl Iterator<Item = &String> {
players
.iter()
.map(|p| &p.name)
}


Bu artık özelliklerde de mümkün:


trait Container {
fn items(&self) -> impl Iterator<Item = Widget>;
}

impl Container for MyContainer {
fn items(&self) -> impl Iterator<Item = Widget> {
self.items.iter().cloned()
}
}


Ve Rust artık uzun zamandır beklenen eşzamansız işlevlere izin veriyor async fn eğlendirildi (burada bir HTTP isteği):


trait HttpService {
async fn fetch(&self, url: Url) -> HtmlBody;
// ^^^^^^^^ desugars to:
// fn fetch(&self, url: Url) -> impl Future<Output = HtmlBody>;
}


Ancak kullanımında hala sınırlamalar mevcut: her ikisi de kolayca entegre edilemiyor public Vuruşları kullanın. Aynı şekilde dinamik ilişkilendirmeler de mümkün değildir. Ayrıntıları bahsi geçen blog yazısında bulabilirsiniz.

Kolay güncelleme


1.75 sürümündeki diğer yenilikler arasında işaretçiler, rustik derleyici ve yeni kararlı API'ler yer alıyor. Güncellemenin en kolay yolu Rustup'tır:


rustup update stable


En cesur programcılar ve testçiler için bir beta ve gece geç saatlere kadar açık bir kanal var:


rustup default beta
rustup default nightly


Hatalar proje deposunda bildirilebilir.


(DSÖ)



Haberin Sonu
 
Üst