Métodos de enums y enteros subyacentes
Añada comportamiento y controle la representación.
Métodos de enums y enteros subyacentes 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.
Los Enums pueden tener comportamiento
Un enum es un tipo real, por lo que puede contener métodos. Declare las funciones dentro del cuerpo del enum, justo al lado de los nombres de los valores.
Un método en un Enum
Escriba una función dentro del enum y use self como primer parámetro. Funciona igual que un método de un struct.
const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };Llamar a métodos de un Enum
Se llama a un método mediante la sintaxis de punto sobre un valor. El valor se convierte en self, por lo que el método sabe sobre qué variante se llamó.
const ok = c.isRed();Todo Enum tiene un respaldo entero
Internamente, cada valor de enum se asigna a un entero. Zig elige un tipo entero de respaldo pequeño que pueda contener todos sus valores.
La numeración predeterminada comienza en cero
De forma predeterminada, el primer valor es 0 y cada valor posterior aumenta en uno. Así, rojo es 0, verde es 1 y los siguientes continúan según el orden.
const Color = enum { red, green, blue }; // 0, 1, 2Elegir el tipo de respaldo
Puede indicar el entero de respaldo entre paréntesis, como enum(u8). Esto fija el ancho exacto y es importante para la disposición en memoria y la interoperabilidad.
const Code = enum(u8) { a, b, c };Establecer valores explícitos
Asigne un número específico a un valor mediante =. Esto resulta útil cuando los enteros deben coincidir con un protocolo o un registro de hardware.
const Status = enum(u8) { ok = 0, busy = 1, err = 255 };De enum a entero
Convierta un valor de enum en su número mediante @intFromEnum. Así obtiene el entero subyacente para enviarlo o almacenarlo.
const n = @intFromEnum(Status.err); // 255De entero a enum
Haga lo contrario con @enumFromInt para convertir un número de nuevo en un valor de enum del tipo esperado.
const s: Status = @enumFromInt(1);Convertir con cuidado
@enumFromInt supone que el número corresponde a una variante válida. En las compilaciones seguras se detecta un valor incorrecto; de lo contrario, usted debe validarlo.
Métodos y etiquetas en conjunto
Combine ambas ideas: elija un tipo de respaldo para la disposición en memoria, establezca valores para un protocolo y añada métodos para que el enum sea autosuficiente.
Comprobación rápida
Tiene un valor de enum Status y necesita su número subyacente. ¿Qué builtin debe usar?
Resumen
Proporcionó métodos a los enums mediante self, eligió un entero de respaldo como enum(u8), estableció valores explícitos y convirtió en ambas direcciones con @intFromEnum y @enumFromInt. 🔢
Preguntas frecuentes
¿La lección «Métodos de enums y enteros subyacentes» es gratis?
Sí — el texto completo de «Métodos de enums y enteros subyacentes» 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 «Métodos de enums y enteros subyacentes»?
Añada comportamiento y controle la representació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 4 de 4.
¿Cuánto tiempo toma la lección «Métodos de enums y enteros subyacentes»?
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
- Enums para un conjunto fijo de valores
- Unions que contienen uno de varios tipos
- Unions etiquetadas y switch
- Métodos de enums y enteros subyacentes