Emparejar Open con Close
Adquiera y libere recursos de forma simétrica.
Emparejar Open con Close es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 4 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.
Toda apertura necesita un cierre
Los recursos vienen en pares: abrir y cerrar, asignar y liberar, bloquear y desbloquear. La clave es mantener cada par equilibrado.
Forme el par en el momento
La práctica habitual en Zig es escribir el cierre inmediatamente después de la apertura, usando defer, para que el par nunca se separe.
const f = try open();
defer f.close();Asigne y luego programe la liberación
El mismo ritmo se aplica a la memoria. Justo después de asignarla, programe su liberación para que el búfer se libere al salir.
const buf = try a.alloc(u8, 64);
defer a.free(buf);Los bloqueos se desbloquean
Los mutex siguen el mismo patrón. Adquiera el bloqueo y luego use defer para el desbloqueo, de modo que siempre se libere, incluso si devuelve el control antes de tiempo.
mutex.lock();
defer mutex.unlock();El patrón es escalable
Abra varias cosas y asigne a cada una su propio defer. El orden inverso garantiza que se cierren automáticamente en la secuencia correcta.
Proteja el valor devuelto
Cuando una función construye y devuelve un recurso, use errdefer para liberarlo, de modo que sobreviva si todo va bien, pero se limpie en caso de error.
const node = try a.create(Node);
errdefer a.destroy(node);No quedan recursos huérfanos
Como el cierre está junto a la apertura, refactorizar o añadir ramas nunca deja un recurso huérfano ni provoca fugas.
Fácil de revisar
Un revisor puede buscar cada apertura y localizar inmediatamente su defer correspondiente. La falta de limpieza se vuelve evidente de un vistazo.
El objetivo es la simetría
Considérelo una cuestión de simetría: cada línea que adquiere un recurso tiene cerca una línea que lo libera, y defer mantiene ambas sincronizadas.
Una receta reutilizable
Adquiera, programe la liberación con defer y use. Esta receta de tres pasos sirve para archivos, memoria, bloqueos y casi cualquier recurso que encuentre.
Confianza bajo presión
Al emparejar adquisición y liberación, puede añadir devoluciones anticipadas y gestión de errores con libertad, confiando en que la limpieza seguirá siendo correcta.
Comprobación rápida
¿Dónde debe colocarse normalmente el cierre correspondiente?
Repaso
Empareje cada apertura con un defer de cierre en la línea siguiente. Esta simetría mantiene equilibrados los archivos, la memoria y los bloqueos en todos los caminos. 🔐
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 «Emparejar Open con Close» es gratis?
Sí — el texto completo de «Emparejar Open con Close» 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 «Emparejar Open con Close»?
Adquiera y libere recursos de forma simétrica. 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 4 de 4.
¿Cuánto tiempo toma la lección «Emparejar Open con Close»?
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
- Qué garantiza defer
- Orden de ejecución de varios defers
- defer frente a errdefer en la práctica
- Emparejar Open con Close