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.