'Result' Nedir?
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 42 / 66.
Option değerlerin yokluğunu ele alırken, Rust farklı ancak bir o kadar önemli bir senaryo için başka bir enum sağlar: başarısız olabilecek işlemler. Result<T, E> ile tanışın - Rust'ın kurtarılabilir hataları ele almak için birincil aracı.
Result enum'ı, bir işlemin sonucunu temsil eden iki varyanta sahiptir:
enum Result<T, E> {
Ok(T), // Başarılı - başarılı sonucu içerir
Err(E), // Başarısız - hata bilgisini içerir
}Bir işlem başarılı olduğunda, başarılı sonucu içeren Ok(value) döndürür. Başarısız olduğunda ise neyin yanlış gittiğine dair bilgi içeren Err(error) döndürür. Başarı ve başarısızlık durumlarının bu şekilde açıkça ele alınması, Rust programlarını daha güvenilir ve öngörülebilir kılar.
Rust'ta her yerde Result ile karşılaşırsınız - eksik dosyalar nedeniyle başarısız olabilecek dosya işlemlerinden, zaman aşımına uğrayabilecek ağ isteklerine ve geçersiz girdi alabilecek ayrıştırma işlemlerine kadar. İstisnaları (exceptions) kullanan dillerin aksine Rust, sizi işlemlerin başarısız olabileceğini kabul etmeye ve her iki sonucu da açıkça ele almaya zorlar.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Kopya kağıdı
Result<T, E> enum'ı, başarısız olabilecek işlemleri yönetir:
enum Result<T, E> {
Ok(T), // Başarı - başarılı sonucu içerir
Err(E), // Hata - hata bilgisini içerir
}Bir işlem başarılı olduğunda Ok(value) döndürür. Başarısız olduğunda ise Err(error) döndürür.
Result, dosya işlemleri, ağ istekleri ve ayrıştırma işlemleri gibi kurtarılabilir hatalar için kullanılır. Rust, hem başarı hem de hata durumlarının açıkça ele alınmasını gerektirir.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi Bulma