Result türleri — Result<T, Error>
Result kullanarak fırlatma olmadan başarıyı veya başarısızlığı gösterin. Sonuçlar oluşturun, bunlar üzerinde switch kullanın, map/flatMap uygulayın ve throws ile arasında köprü kurun.
Result türleri — Result<T, Error>, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 3 dersten oluşur.
Sonuç neden kullanılır?
Amaç: Başarıyı veya başarısızlığı açıkça döndürmek için Sonuç<T, Hata> kullanın. Bu, geri çağrılar veya hata fırlatmaktan kaçınan arayüzler için uygundur.
Sonuç oluşturma
Hata fırlatmak yerine .success(value) veya .failure(error) oluşturun.
enum ParseError: Error { case badInt }
func parseInt(_ s: String) -> Result<Int, Error> {
if let n = Int(s) { return .success(n) }
else { return .failure(ParseError.badInt) }
}
print(parseInt("42"))
print(parseInt("nope"))Sonuç üzerinde seçim
Başarı ve başarısızlık yollarını anlaşılır tutmak için sonuçları bir seçim yapısıyla işleyin.
let r = parseInt("10")
switch r {
case .success(let n): print("number =", n)
case .failure(let e): print("error:", e)
}Sonuçları dönüştürme
Başarıyı map ile dönüştürün, Sonuç üreten işleri flatMap ile zincirleyin ve hataları mapError ile uyarlayın.
let r1 = parseInt("5").map { $0 * 2 } // Result<Int, Error>
let r2 = parseInt("x").map { $0 * 2 } // still .failure
let r3 = parseInt("8").flatMap { n in // chain Results
n % 2 == 0 ? .success(n/2) : .failure(ParseError.badInt)
}
let rErr = parseInt("x").mapError { $0 } // transform error type if needed
print(r1, r2, r3, rErr)Hata fırlatmadan Sonuç'a
Hata fırlatan bir çağrıyı otomatik olarak Sonuç olarak yakalamak için Sonuç { dene ... } kullanın.
enum LoadError: Error { case notFound }
func load(text name: String) throws -> String {
guard name == "ok" else { throw LoadError.notFound }
return "loaded"
}
// Build a Result from a throwing call:
let res = Result { try load(text: "ok") } // .success("loaded")
let res2 = Result { try load(text: "missing") } // .failure(LoadError.notFound)
print(res, res2)Sonuç'tan hata fırlatmaya
Bir Sonuç içindeki hatayı yeniden fırlatmak ve yeniden hata fırlatan koda geçmek için get() çağrısını yapın.
let outcome = parseInt("12")
do {
let value = try outcome.get() // throws if .failure
print("value =", value)
} catch {
print("thrown from get():", error)
}Sonucun anlamı
Hızlı kontrol: Sonuç<T, Hata> neyi temsil eder?
Özet
Özet: Sonuç değerleri oluşturun, bunları seçim yapısıyla işleyin, map/flatMap/mapError ile dönüştürün ve Sonuç { dene ... } başlatıcısı ile get() kullanarak hata fırlatan koda veya bu koddan geçiş yapın.
Sıkça Sorulan Sorular
“Result türleri — Result<T, Error>” dersi ücretsiz mi?
Evet — “Result türleri — Result<T, Error>” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 3 dersten oluşur.
“Result türleri — Result<T, Error>” dersinde ne öğreneceğim?
Result kullanarak fırlatma olmadan başarıyı veya başarısızlığı gösterin. Sonuçlar oluşturun, bunlar üzerinde switch kullanın, map/flatMap uygulayın ve throws ile arasında köprü kurun. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.
“Result türleri — Result<T, Error>” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Optional zincirleme ve temel hata işleme
- do/catch ve hata tanımlama (enum'lar)
- Result türleri — Result