Zig Academy · Aula

Combinando abertura e fechamento

Adquira e libere recursos de forma simétrica.

Aula 4 de 413 etapas

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. 🔐

Grátis para começar

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

  1. O que defer garante
  2. Ordem de execução de vários defers
  3. defer versus errdefer na prática
  4. Combinando abertura e fechamento
← Voltar para Zig Academy