I’ve read this summary of iterators in
Go repeatedly over the
years. This morning I read Generators in
Go and realized I’d failed to
internalize what might be the most natural-feeling option: channel + range.
Early break remains a garbage collection issue, though.