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, AliceO 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.
Desafio
FácilAtribua um valor padrão a um parâmetro opcional.
- Escreva
local function calculateTax(price: number, rate: number?): number. - Sua primeira linha é
rate = rate or 0.05; depois, retorneprice * rate. - Imprima
calculateTax(100)ecalculateTax(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
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