Junior — Middle
Възможно ли е използването на escaping closure с опционални параметри?
sobes.tech AI
Отговор от AI
Да, в Swift може да се използва escaping closure с опционални параметри. Опционалните параметри в closure позволяват да се предават стойности, които могат да бъдат nil. Това е полезно, например, когато резултатът от операция може да липсва или да е неуспешен.
Пример за използване на escaping closure с опционален параметър:
func fetchData(completion: @escaping (String?) -> Void) {
DispatchQueue.global().async {
let data: String? = "Резултат от заявката" // или nil при грешка
completion(data)
}
}
fetchData { result in
if let data = result {
print("Получени данни: \(data)")
} else {
print("Липсващи данни")
}
}
Тук, completion е escaping closure, който приема опционален String. Това е често срещан модел за асинхронни операции.