identity

Devuelve su argumento sin modificarlo.

T identity<T>(T a) => a;

Lección

identity es la función más simple de la librería, y una de las más útiles: recibe un valor y lo devuelve tal cual. Por sí sola parece inútil. Su valor aparece siempre que una API espera una función pero en realidad no quieres transformar nada: una función clave por defecto para groupBy/sortBy, una rama de relleno en una tabla de despacho o el brazo «no hace nada» de un pipeline condicional.

Como identity es genérica (T identity<T>(T a)), encaja en cualquier hueco que pida una función unaria sin que tengas que escribir (x) => x a mano. No tiene variante asíncrona ni forma de cadena: es una función corriente de valor a valor que pasas de un lado a otro.

Demo 1 · Fundamentos

Usada directamente y como función clave de una agrupación en la que «agrupar por el propio valor» es justo lo que quieres:

Demo 2 · Como la rama que «no hace nada»

Una tabla de despacho de transformaciones de cadenas de texto, en la que una entrada no hace nada a propósito: identity ocupa ese hueco limpiamente, sin escribir una lambda vacía a mano:

Pruébalo tú

Ejercicio: sortBy recibe una función clave. Usa identity como esa clave para ordenar esta lista de palabras por su orden natural (alfabético).

Relacionado: always — una constante en vez de dejar pasar el valor · tap — deja pasar el valor, pero antes ejecuta un efecto secundario · cases — tabla de despacho con predicados · sortBy — un destino habitual para una función clave