matches

isMatch currificado: fijas un patrón una vez y recibes un predicado reutilizable.

bool Function(Object? target) matches(Object? pattern)

Lección

isMatch(target, pattern) necesita los dos argumentos de golpe, lo que lo hace incómodo de pasar a filter, find, every o a cualquier otro sitio que espere un bool Function(A) de un solo argumento. matches(pattern) captura el patrón en un cierre y devuelve justo esa forma: matches(pattern)(target) == isMatch(target, pattern). Construyes el predicado una vez y lo reutilizas en todo un pipeline.

Esta es la versión de currificación de FxDart para una función de dos argumentos allí donde Dart no puede inferir un curry general — mira la función de nivel superior obsoleta curry si te pica la curiosidad de por qué no existe una versión genérica —, pero una forma currificada hecha a medida como esta funciona de maravilla.

Demo 1 · Fundamentos

Demo 2 · Enchufarlo directamente en filter/find

Pruébalo tú

Ejercicio: usa matches para construir un predicado para {'active': true} y filtra users con él.

Relacionado: isMatch — la función de dos argumentos que esto currifica · filter — el sitio más habitual donde enchufarlo · find — quédate solo con la primera coincidencia · predicates — más comprobaciones ya hechas y listas para filter