Menu
Coddy logo textTech

Enums de cadena como uniones

Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 53 de 73.

Los números hacen que los registros crípticos: ver 2 te dice poco; ver "down" te lo dice todo. Para obtener enumeraciones legibles, las uniones de literales de Luau son la herramienta adecuada: un tipo cuyos miembros son cadenas exactas:

type Direction = "up" | "down" | "left" | "right"

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ error de tipo al editar

Una variable anotada con Direction puede contener esas cuatro cadenas y nada más. Escribe una incorrectamente y el comprobador la detecta al instante: el error nunca llega a un jugador.

En tiempo de ejecución, los valores son cadenas simples. Imprímelas, concaténalas, compáralas con ==. Todo lo que sabes sobre las cadenas se aplica:

print(facing)            -- arriba
print(`facing {facing}`) -- facing arriba

Compara los dos patrones que tienes ahora: la tabla de constantes crea un valor en tiempo de ejecución (UserRole) que contiene miembros, mientras que la unión de literales no crea ningún valor. No existe ninguna tabla Direction, solo una regla que el comprobador hace cumplir sobre qué cadenas encajan. Los valores descriptivos y autoexplicativos, con un costo de ejecución nulo, hacen que las uniones de literales sean el estilo de enumeración preferido en el código de Luau.

challenge icon

Desafío

Fácil

Crea un tipo de unión literal llamado Direction con los miembros "up", "down", "left" y "right".

Crea cuatro variables, cada una anotada con Direction:

  • upDirection = "up"
  • downDirection = "down"
  • leftDirection = "left"
  • rightDirection = "right"

Imprime, cada uno en su propia línea:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. el mensaje The player moves left, construido mediante interpolación de strings a partir de leftDirection

Pruébalo tú mismo

-- Escribe código aquí
-- 1) define el tipo Direction como una unión de los cuatro literales de cadena
-- 2) crea las cuatro variables anotadas
-- 3) imprime cada una, luego el mensaje interpolado
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Introducción a Luau

Practica por tu cuenta: Compilador de Lua online