Sobes.tech
Intern

Mi a kedvenc funkciód a Swift-ben?

sobes.tech MI

Válasz az MI-től

A Result egy felsoroló típus. Lehetővé teszi egy művelet sikeres vagy hibás végrehajtásának egyértelműbb kezelését, ami biztonságosabb és érthetőbb kódot eredményez.

enum Result<Success, Failure> where Failure : Error {
    case success(Success) // Sikeres eredmény, társított értékkel, amely a Success típusú
    case failure(Failure) // Hibás eredmény, társított értékkel, amely a Failure típusú
}

A Result használatának előnyei:

  • Egyértelmű jelzés: Világosan látható, hogy a függvény vagy sikeres értéket vagy hibát ad vissza.
  • Biztonság: A fordító kötelezi mindkét eset (success és failure) kezelésére, megelőzve a hibák elkerülését.
  • Olvashatóság: A Result-et használó kód könnyebben érthető, mivel a függvény szándéka nyilvánvaló.
  • Kompatibilitás: Jól integrálódik aszinkron műveletekkel és hibakezeléssel.

Használati példa:

func fetchData(from url: URL, completion: @escaping (Result<Data, Error>) -> Void) {
    URLSession.shared.dataTask(with: url) { data, response, error in
        if let error = error {
            completion(.failure(error)) // Hiba átadása failure esetén
            return
        }
        if let data = data {
            completion(.success(data)) // Adatok átadása success esetén
            return
        }
        // Nem várt helyzetek kezelése, ha szükséges
    }.resume()
}

// Függvény használata
let someURL = URL(string: "https://example.com")!
fetchData(from: someURL) { result in
    switch result {
    case .success(let data):
        print("Adatok: \(data)") // Sikeres eredmény kezelése
    case .failure(let error):
        print("Hiba az adatok lekérésekor: \(error.localizedDescription)") // Hiba kezelése
    }
}