Funções sem retorno
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 25 de 80.
Muitas funções não calculam um valor. Elas fazem algo: exibem uma mensagem, atualizam uma tabela, salvam o estado. Em Luau, você pode anotar que uma função não retorna nada usando o tipo de retorno vazio ():
local function logMessage(message: string): ()
print(message)
end
local counter = 0
local function incrementCounter(): ()
counter += 1
endSe você conhece TypeScript, () desempenha o papel de void, mas a forma de escrever em Luau é um par de parênteses vazios, literalmente "zero valores de retorno".
A anotação é opcional: deixe-a de fora e Luau infere que a função não retorna nada. Escrever : () explicitamente documenta sua intenção: qualquer pessoa que ler a assinatura saberá que essa função é chamada por seus efeitos colaterais, não pelo resultado.
Em tempo de execução, nada muda (como de costume): uma função sem um valor de return simplesmente produz nil se você tentar capturar seu resultado: o mesmo que em Lua puro.
Desafio
FácilEscreva duas funções que imprimam e não retornem nada.
- Escreva
local function displayWelcome(userName: string): ()que imprime`Welcome, {userName}!`. - Escreva
local function logError(errorMessage: string): ()que imprime`ERROR: {errorMessage}`. - Chame
displayWelcome("Alice")e, em seguida,logError("Invalid input").
Pressione Executar código: a saída mostra Welcome, Alice! e ERROR: Invalid input.
Experimente você mesmo
-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) chame displayWelcome("Alice") e depois logError("Invalid input")
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