Sobes.tech
Junior — Middle

Explique o conceito de closure e como é utilizado na programação

sobes.tech IA

Resposta da IA

O encerramento (closure) é uma função que «lembra-se» do ambiente em que foi criada, incluindo o acesso às variáveis do escopo externo, mesmo que essa área já tenha saído do contexto de execução.

Na programação, o closure é usado para:

  • Manter o estado entre chamadas de função sem usar variáveis globais.
  • Encapsular dados e criar variáveis privadas.
  • Criar funções com parâmetros padrão que mantêm seus valores.

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 closure que captura e armazena a variável total da função externa, permitindo manter o estado entre chamadas.