Iterator: Recorriendo Colecciones
Recorre elementos de cualquier colección sin exponer su estructura interna — el cliente nunca necesita saber si es una lista, árbol o grafo.
Por qué importa
Cuando el código cliente se adentra en los internos de una colección — accediendo directamente a ._items[i] — se acopla a la implementación. Cambia una lista por un árbol y cada cliente se rompe. El patrón Iterator da al código cliente una forma única y uniforme de recorrer cualquier colección: simplemente pide el siguiente elemento. La colección controla cómo se recorre a sí misma; el cliente nunca ve su interior.
Integrado en el lenguaje
El for x in obj de Python llama a __iter__ y luego llama repetidamente a __next__ — Iterator es el protocolo. El for...of de TypeScript llama a Symbol.iterator. Los generadores en ambos lenguajes son fábricas de Iterator. Cada vez que has escrito for x in algo, has usado Iterator.
💡Conclusión clave
Iterator desacopla el recorrido de la colección — puedes cambiar la estructura interna o añadir un nuevo orden de recorrido sin tocar el código cliente.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: Iterator desacopla el recorrido de la colección — puedes cambiar la estructura interna o añadir un nuevo orden de recorrido sin tocar el código cliente.
✗ Tu versión