Closures
Definição
Uma closure é uma função que mantém acesso às variáveis do seu escopo de definição, mesmo após esse escopo ter sido finalizado. Isso permite que a função "lembre" do ambiente onde foi criada, mesmo que esteja sendo executada em outro contexto.
Por que é importante
Closures permitem encapsular dados sem expô-los diretamente, criando funções com comportamento interno baseado em contexto anterior. Elas são fundamentais em programação funcional e em muitas APIs modernas baseadas em funções.
Também são úteis para preservar estado sem depender de variáveis globais ou estruturas externas.
Contextos comuns de uso
- Callbacks e funções de evento
- Funções que retornam outras funções (funções fábrica)
- Criação de escopos isolados sem usar classes
- Implementação de contador ou memória interna sem variáveis globais
Exemplo em código (Python)
def criar_contador():
total = 0
def incrementar():
nonlocal total
total += 1
return total
return incrementar
contador = criar_contador()
print(contador()) # 1
print(contador()) # 2
A função incrementar
é uma closure que mantém acesso à
variável total
mesmo depois que
criar_contador
já foi finalizada. Isso permite preservar
estado de forma encapsulada.