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