Sobes.tech
Junior — Middle

Explique o conceito de closure na programação e sua aplicação

sobes.tech IA

Resposta da IA

O encerramento (closure) é uma função juntamente com o seu contexto léxico circundante, que mantém o acesso às variáveis do escopo externo mesmo após a função externa ter terminado a sua execução.

Aplicações de encerramentos:

  • Manter o estado entre chamadas de função sem usar variáveis globais.
  • Encapsulamento de dados e criação de variáveis privadas.
  • Criar funções com parâmetros padrão ou com argumentos parcialmente fixados.

Exemplo em Swift (iOS):

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    let incrementer: () -> Int = {
        total += amount
        return total
    }
    return incrementer
}

let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20

Aqui, incrementer é um encerramento que mantém o acesso a total e amount da função externa makeIncrementer.