gt · gte · lt · lte

Comparaciones data-first, como valores de función en lugar de operadores.

bool gt(Object? a, Object? b) // a > b bool gte(Object? a, Object? b) // a >= b bool lt(Object? a, Object? b) // a < b bool lte(Object? a, Object? b) // a <= b

Lección

gt, gte, lt y lte son los cuatro operadores de orden empaquetados como funciones data-first: gt(a, b) == (a > b), con el primer argumento a la izquierda, exactamente igual que el operador. Eso los convierte en comparadores listos para usar allí donde una API espera una función en vez de un operador infijo.

Por dentro exigen que ambos valores sean mutuamente Comparable y — con una excepción — del mismo tipo exacto en tiempo de ejecución: num con num y String con String sí pueden mezclarse (así que un int puede compararse con un double), pero cualquier otra combinación de tipos distintos lanza un ArgumentError en lugar de convertir en silencio.

Ninguna de las cuatro está currificada — no existe la aplicación parcial gt(5). Para obtener un predicado unario reutilizable (por ejemplo, para filter), escribe un pequeño closure que fije uno de los lados: (b) => gt(b, 5).

Demo 1 · Fundamentos, y el error por tipos incompatibles

Demo 2 · Currificar en un predicado para filter

Pruébalo tú

Ejercicio: quédate solo con las edades que son gte 18 (adultos).

Relacionado: add — la contraparte aritmética de estas comparaciones · sort / sortBy — construye un comparador a partir de lt/gt · min / max — las versiones agregadas de estas comparaciones · negate — invierte un predicado de comparación currificado