always

Devuelve una función que siempre devuelve el mismo valor fijo, ignorando su argumento.

T Function([Object? _]) always<T>(T a) => ([Object? _]) => a;

Lección

always(a) captura a y te devuelve una función que descarta aquello con lo que la llames y devuelve a cada vez. El parámetro opcional es el truco que le permite encajar en cualquier sitio donde se espere un callback unario — un mapeador, un manejador orElse, una rama de reserva — sin que tengas que escribir (_) => a a mano cada vez.

Es la contraparte constante de identity: identity deja pasar la entrada, always la desecha. Ambas son funciones síncronas simples, sin variante asíncrona ni forma encadenada.

Demo 1 · Fundamentos

Fíjate en el argumento opcional — greet(123) sigue devolviendo 'hi', que es justo lo que le permite actuar como callback de map:

Demo 2 · Valor por defecto constante en una tabla de despacho

always encaja de forma natural como orElse en cases — un valor por defecto fijo que no necesita mirar el valor que no coincidió:

Pruébalo tú

Ejercicio: usa always para reemplazar cada nota de esta lista por la cadena 'graded'.

Relacionado: identity — deja pasar el argumento en lugar de descartarlo · cases — tabla de despacho que suele acompañarse de always como orElse · when — transformación condicional, entra un valor y sale un valor · memoize — cachea un valor calculado en vez de uno constante