Menu
Coddy logo textTech

Enums de String como Unions

Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 53 de 73.

Números tornam os logs enigmáticos: ver 2 diz pouco, ver "down" diz tudo. Para enumerações legíveis, os tipos de união literal do Luau são a ferramenta: um tipo cujos membros são strings exatas:

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

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ erro de tipo ao editar

Uma variável anotada com Direction pode conter essas quatro strings e nada mais. Se você escrever uma delas incorretamente, o verificador detectará o erro instantaneamente: o bug nunca chega a um jogador.

Em tempo de execução, os valores são strings comuns. Imprima-as, concatene-as, compare-as com ==. Tudo o que você sabe sobre strings se aplica:

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

Compare os dois padrões que você tem agora: a tabela de constantes cria um valor em tempo de execução (UserRole) que contém membros, enquanto a união literal não cria valor algum. Não existe uma tabela Direction, apenas uma regra que o verificador impõe sobre quais strings são válidas. Valores descritivos e autoexplicativos, com custo de execução zero, fazem das uniões literais o estilo preferido de enumeração no código Luau.

challenge icon

Desafio

Fácil

Crie um tipo de união literal chamado Direction com os membros "up", "down", "left" e "right".

Crie quatro variáveis, cada uma anotada com Direction:

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

Imprima, cada um em sua própria linha:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. a mensagem The player moves left, criada com interpolação de string a partir de leftDirection

Experimente você mesmo

-- Escreva o código aqui
-- 1) defina o tipo Direction como uma união dos quatro literais de string
-- 2) crie as quatro variáveis anotadas
-- 3) imprima cada uma, depois a mensagem interpolada
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Introdução ao Luau

Pratique por conta própria: Compilador de Lua online