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

Hata Türleri

Result Tipi

Başarı veya hata döndüren fonksiyonlar:

tür Sonuç<T, E> = enum {
    Tamam(T),
    Hata(E)
}

işlev böl(a: Sayı, b: Sayı) -> Sonuç<Sayı, Yazı> {
    eğer b == 0 {
        hata dön "Sıfıra bölme"
    }
    tamam dön a / b
}

eş böl(10, 2) {
    Tamam(x) => yazdır("Sonuç: ", x),
    Hata(e) => yazdır("Hata: ", e)
}

Option Tipi

Değer olabilir veya olmayabilir:

tür Seçenek<T> = enum {
    Bazı(T),
    Hiç
}

işlev bul(liste: Liste<Sayı>, değer: Sayı) -> Seçenek<Sayı> {
    döngü (i, x) listede {
        eğer x == değer {
            geri dön Bazı(i)
        }
    }
    geri dön Hiç
}

Özel Hata Tipleri

tür DosyaHatası = enum {
    Bulunamadı(Yazı),
    İzinReddedildi,
    Okuma Hatası(Yazı)
}

işlev dosya_oku(yol: Yazı) -> Sonuç<Yazı, DosyaHatası> {
    eğer !dosya_var(yol) {
        hata dön DosyaHatası.Bulunamadı(yol)
    }
    // ...
}

Unwrap Metodları

// Panic atar eğer hata varsa
değişken değer = sonuç.unwrap()

// Varsayılan değer kullan
değişken değer = sonuç.unwrap_or(0)

// Hata dönüştür
değişken değer = sonuç.expect("Hesaplama başarısız")