Sobes.tech
Intern

Mis on teie lemmikfunktsioon Swiftis?

sobes.tech AI

Vastus AI-lt

Result tüüpi loend. See võimaldab selgemalt töödelda edukat täitmist või vea operatsiooni, muutes koodi turvalisemaks ja arusaadavamaks.

enum Result<Success, Failure> kus Failure : Error {
    juhtum success(Success) // Edukas tulemus koos seotud väärtusega Success
    juhtum failure(Failure) // Vea tulemus koos seotud väärtusega Failure
}

Result kasutamise eelised:

  • Selge märgistus: On selge, et funktsioon võib tagastada kas edukat väärtust või vea.
  • Turvalisus: Kompilaator sunnib töötlema mõlemat juhtumit (success ja failure), vältides vigade vahelejätmist.
  • Lugemise parandamine: Result-i kasutades on kood lihtsam mõista, kuna funktsiooni eesmärk on selge.
  • Ühilduvus: Hea integreerub asünkrooniliste operatsioonide ja vigade käsitlemisega.

Näide kasutamisest:

func fetchData(from url: URL, completion: @escaping (Result<Data, Error>) -> Void) {
    URLSession.shared.dataTask(with: url) { data, response, error in
        kui on viga {
            completion(.failure(error)) // Vea edastamine failure juhtumi kaudu
            tagasi
        }
        kui on andmed {
            completion(.success(data)) // Andmete edastamine success juhtumi kaudu
            tagasi
        }
        // Töötle ootamatuid stsenaariume, kui vaja
    }.resume()
}

// Kasutamise näide
let someURL = URL(string: "https://example.com")!
fetchData(from: someURL) { tulemus in
    switch tulemus {
    case .success(let data):
        print("Saadud andmed: \(data)") // Eduka tulemuse töötlemine
    case .failure(let error):
        print("Viga andmete saamisel: \(error.localizedDescription)") // Vea töötlemine
    }
}