Resumen del capítulo
Usamos enums, structs, errors y unions como herramientas de modelado en Zig.
- Enums: se usan para definir tipos con un conjunto fijo de valores. Se pueden asignar valores ordinales manualmente, declarar variables y métodos.
- Structs: estructuras, objetos con campos nombrados que pueden contener cualquier otro tipo incluidos enums u otros structs. Permiten definir métodos, constantes, variables propias. Las tuplas son structs anónimos (sus campos no tienen nombre).
- Errores: En Zig los errores son valores y se definen con error{ }. Los manejamos con try, catch, if |err_x| y errdefer (parecido a defer pero solo en caso de error). Distintos errores se pueden fusionar con || formando un nuevo conjunto.
- errdefer: ejecuta un bloque de código solo si la función devuelve error.
- Unions: sirve para contener un único valor activo entre varios tipos posibles. Hay dos tipos de unions:
- Bare union: no incluye información sobre qué campo está activo,
- Tagged union: usando union(enum) o un enum externo como etiqueta nos permite saber qué campo está activo.