Was defer garantiert
Führen Sie Code aus, wenn ein Gültigkeitsbereich endet.
Was defer garantiert ist eine kostenlose Zig Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Zig Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Zuverlässige Bereinigung
Fast jedes Programm öffnet etwas, das später geschlossen werden muss. Zig stellt Ihnen defer bereit, damit die Bereinigung nie vergessen wird.
Was defer bewirkt
Eine defer-Anweisung plant einen Codeabschnitt für die Ausführung ein, sobald der umgebende Gültigkeitsbereich endet – unabhängig davon, wie er verlassen wird.
defer cleanup();Bereinigung sofort schreiben
Die wichtigste Idee: Platzieren Sie die Bereinigungszeile neben der Zeile, die die Ressource erwirbt, damit beide nicht voneinander getrennt werden können.
const file = try open();
defer file.close();Ausführung beim Verlassen des Gültigkeitsbereichs
Der zurückgestellte Code wird nicht sofort ausgeführt. Er wartet, bis der scope, in dem er steht, beendet ist, und wird dann ausgeführt.
{
defer cleanup();
work();
}Funktioniert bei jedem Verlassen
Unabhängig davon, ob der Gültigkeitsbereich normal endet oder Sie vorzeitig aus der Mitte return verwenden: Der zurückgestellte Code wird trotzdem ausgeführt. Es gibt kein Entkommen.
defer file.close();
if (bad) return error.Oops;Fehler überspringen die Bereinigung nicht
Selbst wenn ein späteres try in der Funktion einen Fehler zurückgibt, wurde Ihr defer bereits eingeplant und wird beim Verlassen ausgeführt.
Jede Anweisung, nicht nur Aufrufe
Ein defer kann jede einzelne Anweisung enthalten, auch einen block, sodass Sie mehrere Bereinigungsschritte zusammenfassen können.
defer {
free(buf);
log("done");
}Gültigkeitsbereiche über Funktionen hinaus
defer ist an seinen einschließenden scope gebunden. Das kann der Körper einer Schleife oder ein if-Block sein, nicht nur eine ganze Funktion.
while (more()) {
defer step();
}Keine manuelle Nachverfolgung
Ohne defer müssen Sie daran denken, in jedem Zweig zu schließen. Mit defer führt der Compiler Ihre Bereinigung aus, sodass Sie keinen Pfad vergessen können.
Von oben nach unten lesbar
Da Erwerb und Bereinigung zusammenstehen, liest sich Ihr Code wie eine klare Geschichte: open, verwenden, und das Schließen ist bereits zugesichert.
Das Arbeitstier für Ressourcensicherheit
Von Dateien über Speicherreservierungen bis hin zu Sperren ist defer das alltägliche Werkzeug, das Zig-Programme frei von Leaks und ordentlich hält.
Kurzer Test
Wann wird eine zurückgestellte Anweisung tatsächlich ausgeführt?
Zusammenfassung
Sie haben defer kennengelernt: Schreiben Sie die Bereinigung neben den Erwerb, und Zig garantiert, dass sie beim Verlassen des Gültigkeitsbereichs auf jedem Pfad ausgeführt wird. 🧹
Lerne Zig mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Was defer garantiert“ kostenlos?
Ja — der vollständige Text von „Was defer garantiert“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Zig Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Was defer garantiert“?
Führen Sie Code aus, wenn ein Gültigkeitsbereich endet. Du übst Zig Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Zig Academy zu starten?
Keine Vorkenntnisse erforderlich. Zig Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Was defer garantiert“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Zig Academy-Lektion Code schreiben und ausführen?
Ja. Jede Zig Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Was defer garantiert
- Ausführungsreihenfolge mehrerer defers
- defer vs errdefer in der Praxis
- Open und Close paaren