Sobes.tech
Intern

Swiftтеги сүйүктүү функцияңыз кайсы?

sobes.tech AI

AIден жооп

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)") // Ката иштетүү
    }
}