foundation

Iterator

Expose sequential access к collection без раскрытия storage details, поддерживая streams, generators и traversal APIs.

Iterator даёт последовательный доступ к коллекции без раскрытия хранения — массивы, связные структуры, курсоры БД, async streams, generators. `for...of`, async iterators и lazy sequences — повседневные iterators. Выбор: мутация при обходе, fail-fast vs snapshot.

На интервью: custom iterator. Internal iterators (callbacks) vs external (pull).

Типовые ошибки: изменение коллекции при обходе; unbounded async iterators без отмены; утечка деталей через rich iterator types.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Контракт итерации (sync/async) документирован.
  • Безопасная concurrent modification.
  • Lazy iteration для больших данных.
  • Потребители зависят от протокола, не от storage.