0Pricing
Zig Academy · Lección

Orden de ejecución de varios defers

Por qué el código diferido se ejecuta en orden inverso.

Orden de ejecución de varios defers es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

More Than One defer

A single scope can hold several defer statements. When the scope ends, Zig has to decide what order to run them in.

They Run in Reverse

Multiple defers fire in reverse order: the last one you wrote runs first, and the first one you wrote runs last.

defer one();
defer two();

Last In, First Out

This is classic LIFO behavior, just like a stack. Each defer is pushed on, and unwinding pops them off in reverse.

A Tiny Example

Here two defers run after work. The output is two then one, because the later defer unwinds before the earlier one.

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

Why Reverse Makes Sense

Resources usually depend on earlier ones. Reverse order means you release the newest first, so nothing is freed while still in use.

Mirroring Acquisition

Open A, then open B. Reverse defers close B, then A, perfectly mirroring how you set them up.

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

Captured at Schedule Time

Each defer remembers its code in order, even though execution waits. The order is fixed the moment each defer is reached.

Skipped if Never Reached

If the scope exits before a defer line is reached, that defer was never scheduled, so it does not run at all.

if (early) return;
defer late();

Per-Scope Stacks

Each scope keeps its own defer stack. Inner scopes unwind their defers before the outer scope unwinds its own.

Predictable Teardown

Knowing the reverse rule lets you reason about cleanup precisely, so your teardown sequence is never a surprise.

A Handy Mental Model

Picture stacking plates: you add them top down, but you must remove from the top, taking the last one off first.

Quick Check

Two defers, one then two. What is the run order?

Recap

Multiple defers unwind in reverse order, like a stack, so the newest resource is released first and cleanup mirrors setup. 🔁

Preguntas frecuentes

¿La lección «Orden de ejecución de varios defers» es gratis?

Sí — el texto completo de «Orden de ejecución de varios defers» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Orden de ejecución de varios defers»?

Por qué el código diferido se ejecuta en orden inverso. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Zig Academy?

No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Orden de ejecución de varios defers»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Zig Academy?

Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué garantiza defer
  2. Orden de ejecución de varios defers
  3. defer frente a errdefer en la práctica
  4. Emparejar Open con Close
← Volver a Zig Academy