Sobes.tech
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 (success ve failure) işlemesini zorunlu kılar, hata atlamaları önlenir.
  • Okunabilirlik: Result kullanan 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
    }
}