Iteradores em Go: Range Over Func Explicado

Aprenda iteradores em Go com range over func: iter.Seq, iter.Seq2, iter.Pull, iteradores customizados e composição de iteradores na prática.

O Go 1.23 trouxe uma das funcionalidades mais aguardadas da linguagem: range over functions, ou iteradores baseados em funções. Esse recurso permite usar for range sobre funções customizadas, abrindo um novo paradigma para processar sequências de dados em Go. Combinado com generics, os iteradores tornam o código mais expressivo sem sacrificar a performance.

O que Muda com Range Over Func?

Antes do Go 1.23, o for range funcionava apenas com tipos nativos: slices, maps, strings, channels e inteiros. Se você tinha uma estrutura de dados customizada, precisava expor o estado interno ou retornar um slice completo para iterar.

Ler mais →