Menu
CoddyTech

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
end

Se 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.

challenge icon

Desafio

Fácil

Escreva duas funções que imprimam e não retornem nada.

  1. Escreva local function displayWelcome(userName: string): () que imprime `Welcome, {userName}!`.
  2. Escreva local function logError(errorMessage: string): () que imprime `ERROR: {errorMessage}`.
  3. 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

Pratique por conta própria: Compilador de Luau online