Junior — Middle
Pode explicar o que significa a anotação @escaping em Swift?
sobes.tech IA
Resposta da IA
A anotação @escaping em Swift é usada para indicar que um encerramento (closure) passado para uma função pode ser chamado após a conclusão da própria função. Isto é importante quando o encerramento é guardado e chamado de forma assíncrona, por exemplo, em callbacks de pedidos de rede.
Sem @escaping, o encerramento é considerado não escapável (non-escaping), ou seja, deve ser chamado dentro do corpo da função e não pode ser guardado para ser chamado mais tarde.
Exemplo:
func fetchData(completion: @escaping () -> Void) {
DispatchQueue.global().async {
// Trabalho assíncrono
completion() // chamada do encerramento após sair de fetchData
}
}
Aqui, completion é marcado como @escaping porque é chamado de forma assíncrona após a saída de fetchData.