Parámetros opcionales
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 26 de 80.
En Lua puro, siempre podías omitir argumentos: los que faltaban se convertían silenciosamente en nil, y olvidarse de gestionar eso era una causa clásica de errores. Luau hace explícita esta posibilidad: añade ? al tipo de un parámetro para marcarlo como opcional.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- Hola, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring? se lee como «string o nil». Quienes llaman a la función pueden pasar una cadena u omitir por completo el argumento; los parámetros sin ? son obligatorios, y el verificador señala las llamadas que los omiten.
Dentro de la función, un parámetro opcional podría ser nil, así que compruébalo antes de usarlo: if title then ... end es el patrón habitual. Si omites la comprobación y concatenas nil en una cadena, obtendrás el mismo error de ejecución que Lua siempre ha producido; el verificador de tipos te avisa primero.
Desafío
FácilEscribe una función de perfil cuyo nombre para mostrar sea opcional.
- Escribe
local function createUserProfile(username: string, displayName: string?): string. - Devuelve
`Profile: {displayName} (@{username})`cuando se proporcionedisplayName; de lo contrario, devuelve`Profile: @{username}`. - Imprime
createUserProfile("john_doe", "John Doe")ycreateUserProfile("jane_smith").
Pulsa Run Code: el resultado muestra Profile: John Doe (@john_doe) y Profile: @jane_smith.
Pruébalo tú mismo
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) imprímelo con y sin nombre para mostrar
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