0Pricing
Zig Academy · Lektion

Ausführungsreihenfolge mehrerer defers

Warum zurückgestellter Code in umgekehrter Reihenfolge ausgeführt wird.

Ausführungsreihenfolge mehrerer defers ist eine kostenlose Zig Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Mehr als ein defer

Ein einzelner Gültigkeitsbereich kann mehrere defer-Anweisungen enthalten. Wenn der Gültigkeitsbereich endet, muss Zig entscheiden, in welcher Reihenfolge sie ausgeführt werden.

Sie werden in umgekehrter Reihenfolge ausgeführt

Mehrere defers werden in umgekehrter Reihenfolge ausgeführt: Das zuletzt geschriebene läuft zuerst, das zuerst geschriebene zuletzt.

defer one();
defer two();

Last In, First Out

Das ist das klassische LIFO-Verhalten, genau wie bei einem Stack. Jeder defer wird abgelegt, und beim Abwickeln in umgekehrter Reihenfolge wieder entfernt.

Ein kleines Beispiel

Hier werden zwei defers nach der eigentlichen Arbeit ausgeführt. Die Ausgabe lautet two then one, weil der spätere defer vor dem früheren abgewickelt wird.

defer print("one");
defer print("two");
work();

Warum die umgekehrte Reihenfolge sinnvoll ist

Ressourcen hängen normalerweise von früher erworbenen Ressourcen ab. Die umgekehrte Reihenfolge bedeutet, dass Sie die neueste zuerst freigeben, sodass nichts freigegeben wird, während es noch verwendet wird.

Den Erwerb spiegeln

Öffnen Sie A und anschließend B. Umgekehrte defers close zuerst B und dann A – genau spiegelbildlich zu ihrer Einrichtung.

a.open(); defer a.close();
b.open(); defer b.close();

Zum Einplanungszeitpunkt erfasst

Jeder defer merkt sich seinen Code in der richtigen Reihenfolge, auch wenn die Ausführung wartet. Die Reihenfolge wird in dem Moment festgelegt, in dem der jeweilige defer erreicht wird.

Wird übersprungen, wenn er nie erreicht wird

Wenn der Gültigkeitsbereich endet, bevor eine defer-Zeile erreicht wird, wurde dieser defer nie eingeplant und wird überhaupt nicht ausgeführt.

if (early) return;
defer late();

Stacks pro Gültigkeitsbereich

Jeder Gültigkeitsbereich verwaltet seinen eigenen defer-stack. Innere Gültigkeitsbereiche wickeln ihre defers ab, bevor der äußere Bereich seine eigenen abwickelt.

Vorhersehbarer Abbau

Wenn Sie die Regel für die umgekehrte Reihenfolge kennen, können Sie die Bereinigung genau nachvollziehen, sodass Ihre teardown-Sequenz nie überraschend ist.

Ein nützliches Denkmodell

Stellen Sie sich einen Tellerstapel vor: Sie legen die Teller von oben nach unten auf, müssen sie aber von oben entfernen und nehmen den zuletzt aufgelegten zuerst weg.

Kurzer Test

Zwei defers, zuerst eins und dann zwei. In welcher Reihenfolge werden sie ausgeführt?

Zusammenfassung

Mehrere defers werden wie ein Stack in umgekehrter Reihenfolge abgewickelt. Dadurch wird die neueste Ressource zuerst freigegeben und die Bereinigung spiegelt die Einrichtung. 🔁

Häufig gestellte Fragen

Ist die Lektion „Ausführungsreihenfolge mehrerer defers“ kostenlos?

Ja — der vollständige Text von „Ausführungsreihenfolge mehrerer defers“ 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 „Ausführungsreihenfolge mehrerer defers“?

Warum zurückgestellter Code in umgekehrter Reihenfolge ausgeführt wird. 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 2 von 4.

Wie lange dauert die Lektion „Ausführungsreihenfolge mehrerer defers“?

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

  1. Was defer garantiert
  2. Ausführungsreihenfolge mehrerer defers
  3. defer vs errdefer in der Praxis
  4. Open und Close paaren
← Zurück zu Zig Academy