every

Verdadero cuando todos los elementos cumplen un predicado — trivialmente verdadero para un iterable vacío.

bool every<A>(bool Function(A a) f, Iterable<A> iterable) Future<bool> everyAsync<A>(FutureOr<bool> Function(A a) f, FxAsyncIterable<A> iterable) Future<bool> FxAsync.every(FutureOr<bool> Function(T a) f) // chain (async)

Lección

every recorre de izquierda a derecha y abandona —cortocircuita— en cuanto encuentra un elemento que no cumple el predicado, devolviendo false ahí mismo sin tocar el resto del iterable. Si nada falla (incluido el caso en que no hay nada en absoluto), devuelve true: un iterable vacío cumple de forma trivial «todos los elementos son X».

En la cadena síncrona no hay un Fx.every propio, y no hace falta: Fx ya hereda el Iterable.every de Dart, que tiene exactamente este comportamiento de cortocircuito. La cadena asíncrona sí define su propio .every(), porque tiene que hacer await de cada llamada al predicado.

Demo 1 · Fundamentos & cortocircuito

El contador de peek se detiene en 3, no en 4; la evaluación se detiene justo en el primer fallo:

Demo 2 · Asíncrono

Pruébalo tú

Ejercicio: usa every para comprobar si todo el mundo aprobó (nota >= 60).

Relacionado: some — la contraparte «al menos uno» · filter — recoge todas las coincidencias en lugar de un bool · find — obtén el primer elemento que falla o coincide · predicates — predicados listos para usar junto a every