Zig Academy · Lección

Qué garantiza defer

Ejecute código cuando termine un ámbito.

Lección 1 de 413 pasos

Qué garantiza defer es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 1 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.

Limpieza confiable

Casi todos los programas abren algo que después deben cerrar. Zig proporciona defer para que nunca se olvide la limpieza.

Qué hace defer

Una instrucción defer programa un fragmento de código para que se ejecute cuando termine el ámbito que lo contiene, independientemente de cómo finalice.

defer cleanup();

Escribir la limpieza de inmediato

La idea principal es colocar la línea de limpieza junto a la línea que adquiere el recurso, de modo que sea imposible separar ambas.

const file = try open();
defer file.close();

Se ejecuta al salir del ámbito

El código aplazado no se ejecuta de inmediato. Espera hasta que finaliza el ámbito en el que se encuentra y entonces se ejecuta.

{
    defer cleanup();
    work();
}

Funciona en todas las rutas de salida

Tanto si el ámbito termina normalmente como si hace un return anticipado desde el medio, el código aplazado se ejecuta. No hay forma de evitarlo.

defer file.close();
if (bad) return error.Oops;

Los errores no lo omiten

Aunque un try posterior de la función devuelva un error, su defer ya se ha programado y se ejecutará al salir.

Cualquier instrucción, no solo llamadas

Un defer puede contener cualquier instrucción individual, incluido un bloque, por lo que puede agrupar varios pasos de limpieza.

defer {
    free(buf);
    log("done");
}

Ámbitos más allá de las funciones

defer está vinculado a su ámbito envolvente, que puede ser el cuerpo de un bucle o un bloque if, no solo una función completa.

while (more()) {
    defer step();
}

Sin seguimiento manual

Sin defer, debe recordar cerrar el recurso en cada rama. Con él, el compilador ejecuta la limpieza para que no pueda olvidar ninguna ruta.

Se lee de arriba abajo

Como la adquisición y la limpieza están juntas, el código cuenta una historia clara: abrir, usar y tener ya garantizado el cierre.

La herramienta esencial para la seguridad de los recursos

Desde archivos hasta asignaciones y bloqueos, defer es la herramienta cotidiana que mantiene los programas de Zig libres de fugas y ordenados.

Comprobación rápida

¿Cuándo se ejecuta realmente una instrucción aplazada?

Resumen

Conoció defer: escriba la limpieza junto a la adquisición y Zig garantiza que se ejecute al salir del ámbito en todas las rutas. 🧹

Gratis para empezar

Aprende Zig con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Qué garantiza defer» es gratis?

Sí — el texto completo de «Qué garantiza defer» 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 «Qué garantiza defer»?

Ejecute código cuando termine un ámbito. 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 1 de 4.

¿Cuánto tiempo toma la lección «Qué garantiza defer»?

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