whereNot
Se queda con todos los elementos para los que un predicado devuelve false — la imagen especular de filter.
Lección
whereNot está implementado como
where((a) => !f(a), iterable): existe puramente por
legibilidad. list.whereNot(isInvalid) se lee de forma más
natural que list.where((a) => !isInvalid(a)), sobre todo
cuando el predicado ya tiene un nombre claro y en positivo.
whereNot es el nombre idiomático en Dart; fxdart también
acepta reject, la grafía de FxTS: son el mismo operador.
Elige entre where y whereNot el que te evite
escribir una negación en el punto de llamada.
Todo el comportamiento de where se traslada sin cambios: es
perezoso, y la forma asíncrona hereda el camino concurrente dedicado de
whereAsync, así que .concurrent(n) evalúa
realmente n predicados en paralelo sin dejar de devolver los
resultados en el orden original.
Demo 1 · Fundamentos
Demo 2 · Asíncrono, con concurrencia
Pruébalo tú
Ejercicio: usa whereNot para descartar las líneas
'info: ok' y quedarte solo con los errores.
filter — la función en la que reject delega ·
compact — descarta específicamente los nulos ·
uniq — elimina duplicados ·
concurrent — evaluación paralela