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.

Aquí está la function identity hecha correctamente, como una generic function:

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

El <T> después del nombre de la function declara un type parameter — un marcador de posición que significa "algún type, decidido en cada call". Dentro de la firma usas T exactamente como un type real: el parámetro es un T, y la function devuelve un T.

Usar el mismo T para entrada y salida es todo el truco — los une a them. Call identity("hello") y el comprobador decide T = string para ese call, por lo que el result es un string. Call identity(42) y T = number, por lo que el result es un number. One cuerpo, every type, nada perdido.

T es solo un nombre convencional (abreviatura de "Type") — <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 function Lua simple function identity(value) return value end.

challenge icon

Desafío

Fácil

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

  • declare un parámetro de tipo T
  • acepte un parámetro llamado value de tipo T
  • devuelva ese valor, con el tipo de retorno T

Después, crea estas variables con tipo utilizando 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 uno 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(the exact text from the instructions) 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