0Pricing
Swift Academy · Lezione

Tipi Result — Result<T, Error>

Rappresenti il successo o il fallimento senza generare errori usando Result . Crei i risultati, li analizzi con switch, utilizzi map/flatMap e faccia da ponte verso e da throws.

Tipi Result — Result<T, Error> è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 3 lezioni in totale.

Perché usare Result?

Obiettivo: usare Result<T, Error> per restituire esplicitamente un successo o un errore, una soluzione ideale per callback o API che evitano throws.

Creazione di Result

Crei .success(value) o .failure(error) invece di generare un errore.

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"))

Switch su Result

Gestisca gli esiti con uno switch per mantenere chiari i percorsi di successo e di errore.

let r = parseInt("10")
switch r {
case .success(let n): print("number =", n)
case .failure(let e): print("error:", e)
}

Trasformazione dei Result

Trasformi il successo con map, concateni operazioni che producono Result con flatMap e adatti gli errori usando mapError.

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)

Da Throws a Result

Usi Result { try ... } per catturare automaticamente una chiamata che genera errori come Result.

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)

Da Result a throws

Chiami get() per rilanciare l'errore contenuto in un Result, tornando così a un codice che genera errori.

let outcome = parseInt("12")
do {
    let value = try outcome.get()   // throws if .failure
    print("value =", value)
} catch {
    print("thrown from get():", error)
}

Significato di Result

Verifica rapida: che cosa rappresenta Result<T, Error>?

Riepilogo

Riepilogo: crei valori Result, li gestisca con switch, li trasformi tramite map/flatMap/mapError e passi da e verso throws usando l'inizializzatore Result { try ... } e get().

Domande Frequenti

La lezione «Tipi Result — Result<T, Error>» è gratuita?

Sì — il testo completo di «Tipi Result — Result<T, Error>» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 3 lezioni in totale.

Cosa imparerò in «Tipi Result — Result<T, Error>»?

Rappresenti il successo o il fallimento senza generare errori usando Result . Crei i risultati, li analizzi con switch, utilizzi map/flatMap e faccia da ponte verso e da throws. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.

Quanto tempo richiede la lezione «Tipi Result — Result<T, Error>»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Concatenamento degli optional e basi della gestione degli errori
  2. do/catch e definizione degli errori (enum)
  3. Tipi Result — Result
← Torna a Swift Academy