Один из вариантов - использовать каналы. Каналы похожи на итераторы, и вы можете перебирать их с помощью ключевого слова range. Но когда вы узнаете, что вы не можете вырваться из этого цикла без утечки goroutine, использование становится ограниченным.
Что такое идиоматический способ создания шаблона итератора в go?
Edit
Основная проблема с каналами - это толкающая модель. Итератор - это тянущая модель. Вам не нужно указывать итератору остановиться. Я ищу способ перебора коллекций в приятной выразительной форме. Я также хотел бы привязать итераторы (отображение, фильтрацию, сбрасывание альтернатив).