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, um tipo não é suficiente. Um ID de usuário pode chegar como "user123" ou como 42. No Lua puro, você simplesmente torceria para dar certo; o Luau oferece tipos união: o pipe | significa "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 union

A variável pode conter qualquer um dos membros da união, e somente esses. Essa é a diferença crucial em relação a any: uma união continua sendo rigorosa sobre o que é permitido, ao mesmo tempo que oferece a flexibilidade de que você precisa.

Uniões são especialmente úteis para parâmetros de funções que aceitam vários 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 união! Ela é simplesmente uma forma abreviada de string | nil. Na próxima lição, você aprenderá a trabalhar com segurança com um valor de união depois que tiver um.

challenge icon

Desafio

Fácil

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

Declare uma variável status do tipo string | number, inicializada com "<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