every
모든 원소가 술어를 만족할 때 true — 빈 이터러블이면 공허하게 참입니다.
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)
강의
every는 왼쪽에서 오른쪽으로 훑다가 술어를 만족하지 못하는
원소를 만나는 즉시 빠져나옵니다 — 단락 평가입니다. 나머지 이터러블은
건드리지 않고 그 자리에서 false를 반환합니다. 실패하는
원소가 하나도 없으면(원소 자체가 아예 없는 경우까지 포함해서)
true를 반환합니다. 빈 이터러블은 "모든 원소가 X다"를
공허하게 만족하기 때문입니다.
동기 체인에는 전용 Fx.every가 없습니다 — 필요하지 않기
때문입니다. Fx는 이미 Dart 자체의
Iterable.every를 상속하고 있고, 그것이 정확히 이런 단락
평가 동작을 갖습니다. 반면 비동기 체인은 각 술어 호출을
await해야 하므로 자체 .every()를 정의합니다.
데모 1 · 기본과 단락 평가
peek 카운터가 4가 아니라 3에서 멈춥니다 — 첫 실패 지점에서 평가가 중단됩니다:
데모 2 · 비동기
직접 해 보기
연습: every로 전원이 통과했는지(점수 >= 60) 확인해 보세요.
관련 항목:
some — "하나라도 만족하는가"에 대응하는 짝 ·
filter — bool 대신 일치하는 원소를 모두 모읍니다 ·
find — 처음 실패하거나 일치하는 원소를 얻습니다 ·
predicates — every와 함께 쓰기 좋은 기성 술어들