Last Updated: May 22, 2026
Go 1.23 introduced the iter package, a small but important addition that gives the language a standard vocabulary for iteration. The previous lesson on range-over-func showed how the compiler lets you range over a function value; this lesson covers the two named types from iter that those functions are expected to match, plus the helpers that turn a producer-driven loop into a consumer-driven one. The point of the package is alignment: once everyone agrees on iter.Seq and iter.Seq2, libraries can compose, filter, and chain iterators without each project inventing its own protocol.