0Pricing
Zig Academy · Lección

Construir tipos con @Type

Construya tipos nuevos mediante programación.

Construir tipos con @Type 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.

Lo contrario de @typeInfo

Si @typeInfo convierte un tipo en datos, @Type convierte los datos de nuevo en un tipo real. Juntos permiten transformar tipos durante la compilación. 🛠️

Proporciónele un valor Type.Info

@Type recibe un valor std.builtin.Type y produce el tipo concreto que describe. Usted le entrega una descripción y él le devuelve un tipo.

const T = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 8 } });

Construya un tipo entero

El ejemplo anterior construye u8 desde cero. Cambie los bits a 16 y obtendrá u16; todo queda decidido mientras se compila el programa.

const U16 = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 16 } });

Haga un recorrido de ida y vuelta con un tipo

Pasar un tipo por @typeInfo y después por @Type devuelve exactamente el mismo tipo. Esto demuestra que ambos elementos integrados son inversos precisos.

const Same = @Type(@typeInfo(u32));

Describa una estructura como datos

Para construir una estructura, debe rellenar un array de StructField. Cada campo necesita un nombre, un tipo, una alineación y un puntero predeterminado.

const f = std.builtin.Type.StructField;

Ensamble la información de la estructura

Envuelva los campos en una información .Struct con una disposición y un indicador is_tuple, y después entregue todo a @Type.

const info = .{ .Struct = .{
    .layout = .auto,
    .fields = my_fields,
    .decls = &.{},
    .is_tuple = false,
} };

Genere un tipo de estructura nuevo

Llame a @Type con esa información y obtendrá un tipo de estructura completamente nuevo, creado por su propia lógica en lugar de escrito manualmente.

const Generated = @Type(info);

Los valores predeterminados necesitan un puntero de tiempo de compilación

El default_value de un campo es un puntero const opcional al valor, o null cuando no existe ningún valor predeterminado. El puntero debe conocerse en tiempo de compilación.

const dv: ?*const anyopaque = &@as(u8, 0);

Construya enums y mucho más

El mismo recurso funciona más allá de las estructuras: la información .Enum permite que @Type sintetice tipos enum a partir de una lista calculada de miembros.

Por qué construir tipos

Los tipos generados impulsan serializadores y ORM: permiten derivar automáticamente un tipo de configuración empaquetado o de fila en lugar de editarlo manualmente. ✨

Combínelo con la reflexión

El patrón más potente lee un tipo con @typeInfo, transforma los datos y después reconstruye un tipo nuevo con @Type, por ejemplo, añadiendo un campo.

Comprobación rápida

Tiene un valor std.builtin.Type que describe una estructura. ¿Qué lo convierte en un tipo utilizable?

Resumen

@Type construye tipos reales a partir de datos Type.Info y es el inverso de @typeInfo. Combínelos para leer, transformar y volver a generar tipos. 🎯

Preguntas frecuentes

¿La lección «Construir tipos con @Type» es gratis?

Sí — el texto completo de «Construir tipos con @Type» 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 «Construir tipos con @Type»?

Construya tipos nuevos mediante programación. 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 «Construir tipos con @Type»?

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. Reflejar campos con @typeInfo
  2. Construir tipos con @Type
  3. Validación en tiempo de compilación y @compileError
  4. Generar código con comptime
← Volver a Zig Academy