Destruição e __del__
Limpe os recursos quando a vida de um valor terminar.
Destruição e __del__ é uma aula grátis de Mojo 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 Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Every Value Has an End
When a value is no longer needed, its life ends and Mojo destroys it. This is your chance to clean up what it owned. 🧹
The Destructor Method
Mojo calls a special method named __del__ to destroy a value. It runs automatically when the value goes out of scope.
fn __del__(owned self):
passDeterministic Timing
Mojo destroys values at a predictable point, as soon as they are last used. There is no waiting on a garbage collector.
Last Use, Not Block End
Mojo runs __del__ right after a value is last used, often before the block closes. This frees resources as early as possible.
Free What You Own
If your type holds a heap buffer, __del__ is where you release it. Doing so prevents memory from leaking over time.
You Own the Cleanup
Inside __del__ the value is owned, so you can safely tear down its resources. After this, the value no longer exists.
Often Synthesized
For simple types you write nothing. Mojo synthesizes a destructor that cleans up each field in turn, so leaks are avoided.
When to Customize It
Write your own __del__ when you manage a raw resource, like an allocation or file handle, that needs explicit release.
Runs Once, Exactly
Each value is destroyed exactly once. Moves transfer ownership so only the final holder runs __del__, avoiding double frees.
No Use After Death
Once __del__ completes, Mojo guarantees the value is gone. Its ownership rules stop you from touching freed data.
Safety Without a GC
Deterministic destruction gives you C-like control with built-in safety. Cleanup is timely, predictable, and automatic.
Quick Check
Lets check destruction.
Recap
__del__ runs when a value’s life ends, deterministically and exactly once, letting you clean up safely without a GC. 🎯
Perguntas Frequentes
A aula “Destruição e __del__” é grátis?
Sim — o texto completo de “Destruição e __del__” é 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 Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.
O que vou aprender em “Destruição e __del__”?
Limpe os recursos quando a vida de um valor terminar. Você pratica Mojo 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 Mojo Academy?
Nenhuma experiência prévia é necessária. Mojo 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 “Destruição e __del__”?
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 Mojo Academy?
Sim. Cada aula de Mojo 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
- Semântica de cópia versus movimentação
- O método __copyinit__
- O método __moveinit__
- Destruição e __del__