0Pricing
Swift Academy · Ders

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

  1. Optional zincirleme ve temel hata işleme
  2. do/catch ve hata tanımlama (enum'lar)
  3. Result türleri — Result
← Swift Academy Sayfasına Dön