averageBy
La media de una clave sobre todos los elementos — map + average en un solo paso, NaN cuando está vacío.
double averageBy<A>(num Function(A a) f, Iterable<A> iterable)
Future<double> averageByAsync<A>(FutureOr<num> Function(A a) f, FxAsyncIterable<A> iterable)
double Fx<T>.averageBy(num Function(T a) f) // chain (sync)
Future<double> FxAsync<T>.averageBy(FutureOr<num> Function(T a) f) // chain (async)
Lección
averageBy completa la familia de operadores por clave
(sumBy ·
maxBy ·
minBy): extrae una clave numérica de
cada elemento y promedia esas claves, en una sola pasada que lleva a la vez
un total y un contador acumulados.
El contrato es el de average: un
pipeline vacío devuelve double.nan (está calculando
0 / 0), nunca 0 — comprueba
result.isNaN cuando la entrada pueda quedar vacía. El
resultado siempre es un double.
Demo 1 · Fundamentos & el caso vacío
Demo 2 · Claves asíncronas
Pruébalo tú
Ejercicio: promedia con una sola llamada las páginas de los libros ya leídos.