Valores predeterminados de parámetros
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 27 de 80.
Los parámetros opcionales te dejan un nil que debes gestionar. A menudo, lo que realmente quieres es un valor alternativo: «si quien llama no especificó nada, asumir X». Luau no tiene sintaxis para valores predeterminados en la firma (no existe greeting: string = "Hello"); en su lugar, se usa el modismo clásico de Lua, ahora con tipos:
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Hola, Alice
print(greet("Alice", "Howdy")) -- Qué tal, AliceEl parámetro se anota como opcional (string?), y la primera línea del cuerpo reemplaza nil por el valor predeterminado. Funciona porque nil es falso: nil or "Hello" se evalúa como "Hello". Después de esa línea, el verificador sabe que greeting ya no puede ser nil.
Desafío
FácilAsigna un valor predeterminado a un parámetro opcional.
- Escribe
local function calculateTax(price: number, rate: number?): number. - Su primera línea es
rate = rate or 0.05; después, devuelveprice * rate. - Imprime
calculateTax(100)ycalculateTax(200, 0.08).
Pulsa Ejecutar código: el resultado muestra 5, después 16.
Pruébalo tú mismo
-- 1) calculateTax(price: number, rate: number?): number
-- tasa predeterminada de 0.05 con el patrón `or`
-- 2) imprime calculateTax(100) y 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