Result-tyypit — Result<T, Error>
Esittäkää onnistuminen tai epäonnistuminen ilman heittämistä Result -tyypillä. Luokaa Result-arvoja, käyttäkää niitä switch-rakenteella, map- ja flatMap-operaatioilla sekä muuntakaa niitä throws-rakenteiden kanssa.
Result-tyypit — Result<T, Error> on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 3 oppituntia.
Miksi Result?
Tavoite: Käytä Result<T, Error>-tyyppiä onnistumisen tai epäonnistumisen nimenomaiseen palauttamiseen – se sopii erinomaisesti callbackeihin ja API-rajapintoihin, jotka eivät käytä throws-rakennetta.
Resultin luominen
Luo .success(value) tai .failure(error) heittämisen sijaan.
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"))Resultin käsittely switchillä
Käsittele tulokset switch-rakenteella, jotta onnistumis- ja epäonnistumispolut pysyvät selkeinä.
let r = parseInt("10")
switch r {
case .success(let n): print("number =", n)
case .failure(let e): print("error:", e)
}Result-arvojen muuntaminen
Muunna onnistunut tulos map-metodilla, ketjuta Result-arvoja tuottavat operaatiot flatMap-metodilla ja muokkaa virheitä mapError-metodilla.
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)Throws → Result
Käytä rakennetta Result { try ... } muuntaaksesi virheen heittävän kutsun automaattisesti Result-arvoksi.
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)Result → throws
Kutsu get()-metodia heittääksesi Result-arvon virheen uudelleen ja palataksesi virheitä heittävään koodiin.
let outcome = parseInt("12")
do {
let value = try outcome.get() // throws if .failure
print("value =", value)
} catch {
print("thrown from get():", error)
}Resultin merkitys
Pikatarkistus: Mitä Result<T, Error> edustaa?
Kertaus
Kertaus: Luo Result-arvoja, käsittele niitä switch-rakenteella, muunna niitä map/flatMap/mapError-metodeilla ja muunna niitä throws-rakenteesta ja siihen käyttämällä Result { try ... }-alustajaa ja get()-metodia.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”Result-tyypit — Result<T, Error>” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Result-tyypit — Result<T, Error>”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Result-tyypit — Result<T, Error>”?
Esittäkää onnistuminen tai epäonnistuminen ilman heittämistä Result -tyypillä. Luokaa Result-arvoja, käyttäkää niitä switch-rakenteella, map- ja flatMap-operaatioilla sekä muuntakaa niitä throws-rake… Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Result-tyypit — Result<T, Error>”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Optional chaining ja virheenkäsittelyn perusteet
- do/catch ja virheiden määrittely (enumeraatiot)
- Result-tyypit — Result