O que é Luau?
Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 1 de 73.
Luau é uma linguagem de programação criada na Roblox que se baseia no Lua que você já conhece, adicionando tipos estáticos graduais. Pense nisso como um Lua com uma camada extra de segurança e ferramentas — ele alimenta milhões de experiências na Roblox e é código aberto desde 2021.
A ideia principal é que o Luau é um superconjunto do Lua 5.1. Qualquer código Lua 5.1 valid também é um código Luau valid: você pode pegar um script que escreveu nas seções anteriores e executá-lo como Luau, sem alterações.
O que o Luau adiciona além disso são anotações de tipo (annotation). Uma anotação declara qual tipo de dado uma variável deve conter — uma string, um number, um boolean, uma tabela — para que os erros possam ser capturados antes mesmo que seu código seja executado:
-- Lua (also valid Luau)
local message = "Hello World"
-- Luau with a type annotation
local message: string = "Hello World"A palavra gradual importa: anotações são opcionais. Você pode tipar uma variável, uma função ou um arquivo inteiro — código no estilo Lua sem type continua funcionando enquanto você adiciona tipos no seu próprio ritmo.
Em troca, você obtém melhores ferramentas de editor, código mais legível e proteção contra o tipo de bug que o Lua puro só revela enquanto o programa está em execução.
Experimente você mesmo
Esta lição não inclui um desafio de código.
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
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com Funções
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e Maps