Valores padrão para booleanos
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 28 de 80.
Uma ressalva que você conhece do Lua: or também substitui false. Para um parâmetro boolean? que deve ter como padrão true, flag = flag or true transforma um false explícito em true, porque false or true é true:
local function sendAlert(message: string, loud: boolean?)
loud = loud or true -- sendAlert("Hi", false) ainda recebe true
print(message, loud)
endEm vez disso, use uma verificação explícita de nil. Ela preenche o valor padrão somente quando o argumento não foi informado:
local function sendAlert(message: string, loud: boolean?)
if loud == nil then
loud = true
end
print(message, loud)
end
sendAlert("Hi") -- Hi true
sendAlert("Hi", false) -- Hi falsePara strings e números, or é seguro, já que somente nil e false são valores falsos.
Desafio
FácilDê ao parâmetro booleano um valor padrão de true que false não possa desfazer.
- Escreva
local function shippingCost(weight: number, insured: boolean?): number. - Comece com
if insured == nil then insured = true end. - Retorne
weight * 0.5 + 2quandoinsuredfor verdadeiro; caso contrário,weight * 0.5. - Imprima
shippingCost(4)eshippingCost(4, false).
Pressione Executar código: a saída termina com 4 e 2.
Experimente você mesmo
-- Valor padrão por meio do padrão `or`
local function calculateTax(price: number, rate: number?): number
rate = rate or 0.05
return price * rate
end
print(calculateTax(100))
print(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