Menu
CoddyTech

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. Ada

string? 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.

challenge icon

Desafío

Fácil

Escribe una función de perfil cuyo nombre para mostrar sea opcional.

  1. Escribe local function createUserProfile(username: string, displayName: string?): string.
  2. Devuelve `Profile: {displayName} (@{username})` cuando se proporcione displayName; de lo contrario, devuelve `Profile: @{username}`.
  3. Imprime createUserProfile("john_doe", "John Doe") y createUserProfile("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

Practica por tu cuenta: Compilador de Luau online