Menu
Coddy logo textTech

Tipos de União

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

Às vezes, apenas um tipo não é suficiente. Um ID de usuário pode chegar como "user123" ou como 42. Em Lua pura você apenas torceria pelo melhor; o Luau oferece tipos union — o caractere de pipe | lê-se como "ou":

local userId: number | string

userId = "user123"  -- ✓ uma string é permitida
userId = 42          -- ✓ um number é permitido
userId = true        -- ✗ erro de tipo: boolean não está na união

A variável pode conter qualquer membro da union — e apenas esses. Essa é a diferença crucial em relação a any: uma union permanece rígida sobre o que é permitido, ao mesmo tempo que oferece a flexibilidade necessária.

Unions são especialmente úteis para parâmetros de função que aceitam múltiplos formatos de entrada:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- funciona com um número
printId("user123")   -- funciona com uma string

Você já conhece string? — essa foi sua primeira union! É simplesmente um atalho para string | nil. Na próxima lição, você aprenderá como trabalhar com segurança com um valor de union assim que tiver um.

challenge icon

Desafio

Fácil

Crie uma função chamada printId que aceite id: number | string e o imprima — tipo de retorno explícito ().

Declare uma variável status do tipo string | number, inicializada como "<code>active".

Em seguida, na ordem:

  1. Chame printId(42)
  2. Chame printId("<code>user123")
  3. Imprima status
  4. Reatribua status para 200 e imprima-o novamente

Quatro linhas de saída no total.

Experimente você mesmo

-- Escreva o código aqui
-- printId(id: number | string): ()
-- local status: string | number = o texto exato das instruções
-- chame printId(42), printId(o texto exato das instruções),
-- imprima status, reatribua para 200, imprima novamente
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