Por que usar Luau?
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 2 de 80.
O sistema de tipos do Luau oferece três grandes benefícios que tornam o desenvolvimento mais seguro e eficiente.
Detecte erros antecipadamente: o verificador de tipos analisa seu código enquanto você edita, antes de executá-lo. Considere um bug clássico do Lua: passar nil onde se espera um número:
-- Lua: nada avisa você sobre isso
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(nil, 0.1))
-- ✗ erro em tempo de execução: tentativa de realizar uma operação aritmética com nilNo Lua puro, essa falha só acontece quando a chamada incorreta finalmente é executada: talvez diante dos seus usuários. Pior ainda, às vezes o Lua oculta o bug por completo: "50" + 0.1 converte silenciosamente a string e retorna 50.1… até o dia em que a string não for numérica. Com as anotações do Luau, o erro é sinalizado imediatamente:
local function calculateTotal(price: number, tax: number)
return price + tax
end
calculateTotal(nil, 0.1) -- ✗ erro de tipo durante a edição: nil não é um númeroMelhor legibilidade do código: as anotações servem como documentação. price: number informa a você e às pessoas da sua equipe exatamente o que uma função espera: sem adivinhações nem necessidade de vasculhar a implementação.
Ferramentas de desenvolvimento aprimoradas: como o editor conhece o tipo de cada variável, você recebe preenchimento automático preciso, refatorações mais seguras e navegação mais inteligente. Digite um ponto depois de um valor tipado e o editor listará exatamente o que está disponível.
Desafio
FácilAtribua o tipo number aos dois parâmetros de calculateTotal.
- Na primeira linha, altere
(price, tax)para(price: number, tax: number). - Mantenha a chamada
calculateTotal(80, 8)no final.
Pressione Executar código: a saída mostra 88.
Experimente você mesmo
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(80, 8))
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
Tipagem de parâmetros e valores de retornoTipagem de funções anônimasFunções sem retornoParâmetros opcionaisValores padrão dos parâmetrosValores padrão para booleanosFunções variádicasDefinindo tipos de funçãoRecapitulação: funções tipadas2Tipos básicos
Número, string e booleanoO tipo 'any': válvula de escapeO tipo 'unknown'Tipos nulos e opcionaisInferência de tipos na práticaAnotações explícitas de tipoRevisão: prática com tipos básicos5Aliases, 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 MapsPercorrendo TabelasTabelas com Formatos MistosLendo uma GradeConstruindo uma Gradetable.unpackRevisão: Arrays e MapsPratique por conta própria: Compilador de Luau online