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

✓ result - Result Type

Ok, Err, map, and_then, or_else

24
Fonksiyon
389
Satır
12 KB
Boyut

🚀 Hızlı Başlangıç

içe_aktar result

fonksiyon böl(a: kesir, b: kesir) -> Result yap
    eğer b == 0.0 ise yap
        dön Hata("Sıfıra bölme hatası")
    son değilse yap
        dön Tamam(a / b)
    son
son

değişken sonuç = böl(10.0, 2.0)

eğer sonuç.tamam_mı() ise yap
    yazdır("Sonuç: " + sonuç.çıkar().yazıya())
son değilse yap
    yazdır("Hata: " + sonuç.hata().mesaj())
son

// Pattern matching
eşleşme sonuç yap
    Tamam(değer) => yazdır(değer),
    Hata(hata) => yazdır(hata)
son

💡 Örnekler

Railway Oriented Programming

içe_aktar result

fonksiyon kullanıcı_oku(id: tamsayı) -> Result yap
    // DB'den kullanıcı oku
    eğer id < 0 ise yap
        dön Hata("Geçersiz ID")
    son
    dön Tamam(yap "id": id, "name": "User " + id.yazıya() son)
son

fonksiyon kullanıcı_validate(user: herhangi) -> Result yap
    eğer user["name"].uzunluk() < 3 ise yap
        dön Hata("İsim çok kısa")
    son
    dön Tamam(user)
son

fonksiyon kullanıcı_kaydet(user: herhangi) -> Result yap
    // DB'ye kaydet
    yazdır("Kullanıcı kaydedildi: " + user["name"])
    dön Tamam(user)
son

// Pipeline
değişken sonuç = kullanıcı_oku(1)
    .and_then(kullanıcı_validate)
    .and_then(kullanıcı_kaydet)

eşleşme sonuç yap
    Tamam(_) => yazdır("Başarılı!"),
    Hata(e) => yazdır("Hata: " + e)
son

← Tüm Modüller