Combinando abertura e fechamento
Adquira e libere recursos de forma simétrica.
Combinando abertura e fechamento é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.
Toda abertura precisa de um fechamento
Os recursos vêm em pares: abrir e fechar, alloc e free, lock e unlock. A habilidade está em manter cada par equilibrado.
Associe-os imediatamente
O hábito em Zig é escrever o close imediatamente depois do open, usando adiamento, para que o par nunca se separe.
const f = try open();
defer f.close();Alocar e depois adiar free
O mesmo ritmo se aplica à memória. Logo depois de alocar, agende o free para que o buffer seja liberado ao sair.
const buf = try a.alloc(u8, 64);
defer a.free(buf);Os bloqueios são desbloqueados
Os mutexes seguem o mesmo padrão. Adquira o lock e depois adie o unlock para que o lock seja sempre liberado, mesmo se você retornar antecipadamente.
mutex.lock();
defer mutex.unlock();O padrão se amplia
Abra várias coisas, e cada uma receberá seu próprio adiamento. A ordem inversa garante que elas sejam fechadas automaticamente na sequência correta.
Proteja o valor de retorno
Quando uma função cria e retorna um recurso, use adiar em caso de erro para o free, para que ele sobreviva em caso de sucesso, mas seja limpo em caso de erro.
const node = try a.create(Node);
errdefer a.destroy(node);Sem recursos órfãos
Como o fechamento fica junto da abertura, refatorar ou adicionar ramificações nunca deixa um recurso órfão e vazando.
Fácil de revisar
Um revisor pode procurar cada abertura e identificar imediatamente seu adiamento correspondente. A ausência de limpeza se torna óbvia à primeira vista.
A meta é a simetria
Pense nisso como simetria: cada linha de aquisição tem uma linha de liberação próxima, e o adiamento mantém as duas sincronizadas.
Uma receita reutilizável
Adquira, adie a liberação e depois use. Essa receita de três etapas abrange arquivos, memória, bloqueios e quase qualquer recurso que você encontrar.
Confiança sob pressão
Com aquisição e liberação associadas, você pode adicionar retornos antecipados e tratamento de erros livremente, confiando que a limpeza permanecerá correta.
Verificação rápida
Onde o close correspondente normalmente deve ser colocado?
Recapitulação
Associe cada abertura a um close adiado na linha seguinte. Essa simetria mantém arquivos, memória e bloqueios equilibrados em todos os caminhos. 🔐
Aprenda Zig com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Combinando abertura e fechamento” é grátis?
Sim — o texto completo de “Combinando abertura e fechamento” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.
O que vou aprender em “Combinando abertura e fechamento”?
Adquira e libere recursos de forma simétrica. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Zig Academy?
Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Combinando abertura e fechamento”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Zig Academy?
Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que defer garante
- Ordem de execução de vários defers
- defer versus errdefer na prática
- Combinando abertura e fechamento