✓ 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