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ésfailure) 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
}
}