elementAtOrNull
Devuelve el elemento que está en un índice dado, o null si el índice queda fuera de rango.
Lección
elementAtOrNull recorre el iterable y se detiene en cuanto
llega a index, así que nunca consume más de
index + 1 elementos — barato incluso sobre una secuencia
perezosa enorme, y mucho más barato que materializarla entera solo para
indexar en una List. elementAtOrNull es el nombre
idiomático en Dart (refleja Iterable.elementAtOrNull); fxdart
también acepta la grafía de FxTS nth — son el mismo operador.
Un índice negativo, o uno más allá del final, simplemente da null;
a diferencia de la indexación de arrays de algunos lenguajes, aquí los índices
no dan la vuelta para contar desde el final — el índice tiene que ser una posición
válida y no negativa.
En la cadena síncrona, fx(iterable).elementAtOrNull(index) es el
método heredado de Iterable: llámalo directamente sobre
cualquier cadena Fx, ya que Fx es un
Iterable. Para un FxAsyncIterable, usa la función
de nivel superior elementAtOrNullAsync(index, iterable).
Demo 1 · Fundamentos
Demo 2 · Pereza & async
Pedir el índice 3 solo consume 4 elementos del rango de un millón — demostrado con un contador de peek:
Pruébalo tú
Ejercicio: usa elementAtOrNull para imprimir al medallista de plata (índice 1), o 'unclaimed'.