Menu
Coddy logo textTech

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

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

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.

quiz iconKendini test et

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