Junior — Middle
Explique o que significa capturar variáveis dentro de uma função de fechamento
sobes.tech IA
Resposta da IA
A captura de variáveis dentro de uma função de encerramento significa que o encerramento "lembra-se" e pode usar variáveis do contexto circundante em que foi criado.
Por exemplo, se dentro de uma função for declarada uma variável e, em seguida, for retornada uma função que usa essa variável, essa variável é "capturada" pelo encerramento e mantém seu valor mesmo após a saída da função externa.
Exemplo em Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
return {
total += amount
return total
}
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Aqui, o encerramento captura as variáveis total e amount, mantendo seu estado entre chamadas. Isso permite criar funções com estado interno.