Menu
Coddy logo textTech

Una función de identidad genérica

Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 58 de 73.

Esta es la función identidad bien hecha, como una función genérica:

local function identity<T>(value: T): T
    return value
end

El <T> después del nombre de la función declara un parámetro de tipo: un marcador de posición que representa «algún tipo, decidido en cada llamada». Dentro de la signatura, usas T exactamente como un tipo real: el parámetro es un T y la función devuelve un T.

Usar el mismo T para la entrada y la salida es todo el truco. Los vincula. Llama a identity("hello") y el comprobador decide T = string para esa llamada, así que el resultado es un string. Llama a identity(42) y T = number, así que el resultado es un number. Un solo cuerpo, todos los tipos, sin perder nada.

T es solo un nombre convencional (abreviatura de «Tipo»): <Item> o <Value> funcionan igual de bien. Y, como siempre en Luau, los corchetes angulares existen solo para el comprobador: en tiempo de ejecución, esta es la función Lua normal function identity(value) return value end.

challenge icon

Desafío

Fácil

Crea una función genérica llamada identity que:

  • declara un parámetro de tipo T
  • acepta un parámetro llamado value de tipo T
  • devuelve ese valor, con tipo de retorno T

Después, crea estas variables tipadas usando tu función:

  • luckyNumber de tipo number: llama a identity con 7
  • greeting de tipo string: llama a identity con "Hello, Luau!"
  • isReady de tipo boolean: llama a identity con true

Imprime lo siguiente, cada elemento en su propia línea:

  1. luckyNumber
  2. greeting
  3. isReady
  4. el resultado de llamar a identity con "<code>generics" directamente dentro de print
  5. el resultado de llamar a identity con 99 directamente dentro de print

Pruébalo tú mismo

-- Escribe código aquí
-- 1) define identity<T>(value: T): T
-- 2) crea luckyNumber, greeting e isReady con llamadas a identity
-- 3) imprímelos, luego imprime identity(el texto exacto de las instrucciones) e identity(99)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Introducción a Luau

Practica por tu cuenta: Compilador de Lua online