Menu
CoddyTech

Enums Numéricos com Tables

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

Aqui está o padrão de tabela de constantes completo. Escolha um nome de tabela em PascalCase, atribua um número explícito a cada membro e, a partir daí, o código usa nomes:

local UserRole = {
    Admin = 1,
    Editor = 2,
    Viewer = 3,
}

Ao contrário de enum do TypeScript, nenhum valor é numerado automaticamente. Você escolhe cada valor. Começar em 1 combina bem com as convenções de Lua, mas qualquer esquema funciona (códigos no estilo HTTP, como 200 e 404, também servem).

Os membros são especialmente úteis em comparações. Uma função que recebe uma função recebe uma função que recebe uma função? Wait.

challenge icon

Desafio

Fácil

Dê nome a três níveis de dificuldade usando uma tabela de constantes.

  1. Crie local Level = {Easy = 1, Normal = 2, Hard = 3}.
  2. Escreva local function describeLevel(level: number): string, que retorne "Relaxed" para Level.Easy, "Standard" para Level.Normal e "Brutal" nos demais casos.
  3. Imprima Level.Hard e, em seguida, describeLevel(Level.Normal).

Pressione Executar código: a saída mostra 3 e Standard.

Experimente você mesmo

-- 1) a tabela de constantes Level (Easy = 1, Normal = 2, Hard = 3)
-- 2) describeLevel(level: number): string com if/elseif/else
-- 3) imprima Level.Hard e depois describeLevel(Level.Normal)

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

Pratique por conta própria: Compilador de Luau online