Intern
Swift'te en sevdiğiniz özellik nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Result bir enum türüdür. Bir işlemin başarılı veya hata ile sonuçlanmasını daha açık şekilde işlemeye olanak tanır, bu da kodu daha güvenli ve anlaşılır kılar.
enum Result<Success, Failure> where Failure : Error {
case success(Success) // Başarılı sonuç, Success türünde ilişkili değer ile
case failure(Failure) // Hata sonucu, Failure türünde ilişkili değer ile
}
Result kullanımının avantajları:
- Açık gösterim: Fonksiyonun ya başarılı bir değer ya da hata döndüreceği net şekilde görülür.
- Güvenlik: Derleyici her iki durumu (
successvefailure) işlemesini zorunlu kılar, hata atlamaları önlenir. - Okunabilirlik:
Resultkullanan kodlar, fonksiyonun niyetinin açık olması sayesinde daha kolay anlaşılır. - Uyumluluk: Asenkron işlemler ve hata yönetimi ile iyi entegre olur.
Kullanım örneği:
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)) // Hata durumunu failure ile ilet
return
}
if let data = data {
completion(.success(data)) // Veriyi success ile ilet
return
}
// Beklenmedik durumların işlenmesi, gerekirse
}.resume()
}
// Fonksiyonun kullanımı
let someURL = URL(string: "https://example.com")!
fetchData(from: someURL) { result in
switch result {
case .success(let data):
print("Veriler alındı: \(data)") // Başarılı sonucu işle
case .failure(let error):
print("Veri alınırken hata: \(error.localizedDescription)") // Hata işle
}
}