Menu
Coddy logo textTech

Anotações de Formato Inline

Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 37 de 73.

Em Lua você vem usando tabelas como registros há muito tempo: local user = {name = "Ana", age = 20}. Nada impede que você erre o nome de um campo, esqueça um ou armazene uma string onde deveria ser um número — você só descobre quando o código é executado.

O Luau permite descrever o formato (shape) de tal tabela logo na declaração, listando cada campo e seu tipo entre chaves:

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

Compare isso com os tipos de tabela que você já conhece: {number} descreve um array e {[string]: number} descreve um mapa com quaisquer chaves do tipo string. Um shape é mais preciso — ele nomeia cada campo individualmente e dá a cada campo seu próprio tipo.

Assim que o formato é declarado, o verificador de tipos (type checker) valida a tabela em relação a ele enquanto você edita. Um campo ausente ou um tipo de valor incorreto é sinalizado antes mesmo do código ser executado:

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ erro de tipo: string não é um number
}

Como sempre, a anotação (annotation) não adiciona nenhum comportamento em tempo de execução — a tabela é uma tabela Lua comum. Formatos inline são perfeitos para estruturas pontuais que você não planeja reutilizar; na próxima lição você dará um nome aos formatos (shapes).

challenge icon

Desafio

Fácil

Crie uma variável chamada student com uma annotation de shape inline declarando:

  • name do tipo string
  • studentId do tipo number
  • isEnrolled do tipo boolean

Inicialize-a com o name "Sarah Johnson", studentId 12345 e isEnrolled true.

Crie uma segunda variável chamada course com uma annotation de shape inline declarando:

  • title do tipo string
  • credits do tipo number
  • instructor do tipo string

Inicialize-a com o title "Introduction to Luau", credits 3 e instructor "Dr. Smith".

Print, cada um em sua própria linha:

  1. o nome do estudante (student's name)
  2. o ID do estudante (student's ID)
  3. o título do curso (course title)
  4. o número de créditos (number of credits)

Experimente você mesmo

-- Escreva o código aqui
-- 1) declare student com uma anotação de shape inline
-- 2) declare course com uma anotação de shape inline
-- 3) imprima os quatro campos solicitados
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