Menu
CoddyTech

Valores padrão dos parâmetros

Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 27 de 80.

Parâmetros opcionais deixam um nil para você tratar. Muitas vezes, o que você realmente quer é um valor alternativo: "se quem chamou não especificou, considere X". Luau não tem sintaxe de valor padrão na assinatura (não existe greeting: string = "Hello"); em vez disso, você usa a expressão idiomática clássica de Lua, agora com tipos:

function greet(name: string, greeting: string?): string
    greeting = greeting or "Hello"
    return `{greeting}, {name}`
end

print(greet("Alice"))            -- Hello, Alice
print(greet("Alice", "Howdy"))   -- Howdy, Alice

O parâmetro é anotado como opcional (string?), e a primeira linha do corpo substitui nil pelo valor padrão. Isso funciona porque nil é falso: nil or "Hello" é avaliado como "Hello". Depois dessa linha, o verificador sabe que greeting não pode mais ser nil.

challenge icon

Desafio

Fácil

Atribua um valor padrão a um parâmetro opcional.

  1. Escreva local function calculateTax(price: number, rate: number?): number.
  2. Sua primeira linha é rate = rate or 0.05; depois, retorne price * rate.
  3. Imprima calculateTax(100) e calculateTax(200, 0.08).

Pressione Executar código: a saída mostra 5 e, em seguida, 16.

Experimente você mesmo

-- 1) calculateTax(price: number, rate: number?): number
--    taxa padrão 0.05 com o padrão `or`
-- 2) imprima calculateTax(100) e calculateTax(200, 0.08)

Todas as lições de Introdução ao Luau

Pratique por conta própria: Compilador de Luau online