Sobes.tech
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.