0Pricing
Zig Academy · Lección

null frente a undefined

Dos tipos diferentes de ausencia.

null frente a undefined 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.

Dos palabras, dos significados

Zig tiene tanto null como undefined, y no significan lo mismo. Confundirlos es una fuente clásica de errores difíciles de entender.

null significa que no hay valor

null es un estado real y definido: indica que este opcional no contiene nada intencionadamente. Es un valor significativo que se puede comprobar.

const x: ?i32 = null;

undefined significa que no está especificado

undefined significa que el almacenamiento existe, pero su contenido es basura. Usted se compromete a escribir un valor real antes de leerlo.

var buf: [4]u8 = undefined;

Solo los opcionales contienen null

Solo puede asignar null a tipos opcionales. Un i32 normal nunca lo aceptará, porque la ausencia no forma parte de su tipo.

Cualquier tipo puede ser undefined

En cambio, casi cualquier variable puede comenzar como undefined para reservar memoria ahora y rellenarla un momento después.

var total: i32 = undefined;

Leer null es correcto

Comprobar si un opcional es null es completamente seguro y esperado; así es exactamente como se detecta un valor ausente.

Leer undefined es un error

Leer un valor que todavía es undefined constituye un comportamiento ilegal. Las compilaciones seguras incluso lo rellenan con bytes 0xAA para hacer visible el error.

Una promesa que se hace a sí mismo

Considere undefined como un contrato: promete asignar un valor antes de usarlo. Si lo incumple, leerá datos sin sentido e impredecibles.

Patrón habitual para buffers

Un modismo frecuente consiste en declarar un buffer como undefined y rellenarlo inmediatamente mediante una lectura o una llamada de formato.

var line: [256]u8 = undefined;

Elija la herramienta adecuada

Use null para representar una opcionalidad real. Use undefined solo para evitar una inicialización redundante que sobrescribirá inmediatamente.

Preguntas completamente distintas

null responde a si existe un valor, mientras que undefined responde a si la memoria ya se ha escrito. Mantenerlos separados le mantiene a salvo.

Comprobación rápida

Declara var buf: [8]u8 = undefined; y lee buf[0] antes de escribirlo. ¿Qué ocurre?

Resumen

Ha diferenciado null (un valor ausente real para los opcionales) de undefined (memoria no inicializada que primero debe escribir). Son dos conceptos que nunca debe confundir. 🧠

Preguntas frecuentes

¿La lección «null frente a undefined» es gratis?

Sí — el texto completo de «null frente a undefined» 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 «null frente a undefined»?

Dos tipos diferentes de ausencia. 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 «null frente a undefined»?

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. Declarar tipos optional
  2. Desenvolver de forma segura con if y orelse
  3. Punteros optional y ?*T
  4. null frente a undefined
← Volver a Zig Academy