Intern
Koja je vaša omiljena funkcija u Swift-u?
sobes.tech АИ
Одговор од АИ
Result је тип избора. Омогућава јасније руковање успешним извршењем или грешком операције, што чини код безбеднијим и разумљивијим.
enum Result<Success, Failure> where Failure : Error {
case success(Success) // Успешан резултат са асоцираном вредношћу типа Success
case failure(Failure) // Резултат грешке са асоцираном вредношћу типа Failure
}
Предности коришћења Result:
- Јасна индикација: Јасно је да функција може вратити или успешну вредност или грешку.
- Безбедност: Компилатор захтева да се обраде оба случаја (
successиfailure), спречавајући пропуштање обраде грешака. - Боља читљивост: Код који користи
Resultје лакши за разумевање, јер је намера функције очигледна. - Съвместимост: Добро се интегрише са асинхроним операцијама и руковањем грешкама.
Пример употребе:
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)) // Пренос грешке преко failure
return
}
if let data = data {
completion(.success(data)) // Пренос података преко success
return
}
// Обрада неочекиваних сценарија, ако је потребно
}.resume()
}
// Коришћење функције
let someURL = URL(string: "https://example.com")!
fetchData(from: someURL) { result in
switch result {
case .success(let data):
print("Податци примљени: \(data)") // Обрада успеха
case .failure(let error):
print("Грешка при добијању података: \(error.localizedDescription)") // Обрада грешке
}
}