Valores predeterminados para booleanos
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 28 de 80.
Una salvedad que ya conoces de Lua: or también reemplaza false. Para un parámetro boolean? cuyo valor predeterminado debería ser true, flag = flag or true convierte un false explícito en true, porque false or true es true:
local function sendAlert(message: string, loud: boolean?)
loud = loud or true -- sendAlert("Hi", false) sigue dando true
print(message, loud)
endEn su lugar, usa una comprobación explícita de nil. Esta asigna el valor predeterminado solo cuando se omitió el argumento:
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 cadenas y números, or es seguro, ya que solo nil y false son falsos.
Desafío
FácilAsigna al parámetro booleano el valor predeterminado true, que false no pueda anular.
- Escribe
local function shippingCost(weight: number, insured: boolean?): number. - Empieza con
if insured == nil then insured = true end. - Devuelve
weight * 0.5 + 2cuandoinsuredsea true; en caso contrario,weight * 0.5. - Imprime
shippingCost(4)yshippingCost(4, false).
Pulsa Ejecutar código: la salida termina con 4 y 2.
Pruébalo tú mismo
-- Valor predeterminado mediante el patrón `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 las lecciones de Introducción a Luau
1Primeros pasos con Luau
¿Qué es Luau?¿Por qué usar Luau?Tu primer código en LuauComprobación de tipos y modos de errorRecapitulacion: Introducción a Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de uniónTrabajando con tipos de uniónTipos literalesTipos de intersecciónCombinando alias de tiposResumen: Combinaciones avanzadas de tipos3Tablas tipadas: arrays y mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapasPractica por tu cuenta: Compilador de Luau online