Назад к вопросам
VK
Одноклассники
Junior — Middle
75
Можете объяснить, что означает аннотация @escaping в Swift?
Компании, где спрашивали
KTS
Ответ от нейросети
sobes.tech AI
Аннотация @escaping в Swift используется для указания, что замыкание (closure), переданное в функцию, может быть вызвано после завершения самой функции. Это важно, когда замыкание сохраняется и вызывается асинхронно, например, в колбэках сетевых запросов.
Без @escaping замыкание считается невыходящим (non-escaping), то есть оно должно быть вызвано внутри тела функции, и не может сохраняться для вызова позже.
Пример:
func fetchData(completion: @escaping () -> Void) {
DispatchQueue.global().async {
// Асинхронная работа
completion() // вызов замыкания после выхода из функции
}
}
Здесь completion помечено как @escaping, потому что вызывается асинхронно после выхода из fetchData.