Go · Avançado · Inglês · Técnico
range over func
Recurso do Go 1.23 que permite usar for range com uma função iteradora, como iter.Seq, que chama um yield para cada valor. Padroniza iteradores sobre qualquer coleção.
Onde usar
Usado em coleções próprias e em funções como slices.Values e maps.Keys. O corpo do for vira o yield, e break encerra a iteração com segurança.
Em código
func Contar(n int) iter.Seq[int] {
return func(yield func(int) bool) {
for i := range n {
if !yield(i) { return }
}
}
}
// for v := range Contar(3) { ... } // 0 1 2Exemplos
Range over func lets you loop over a custom collection.
Range over func permite iterar por uma coleção própria.
A break inside the loop makes yield return false.
Um break dentro do laço faz o yield devolver false.
Cuidado
Não confunda com goroutines ou channels: o iterador é uma chamada de função comum e não roda em paralelo.
Sinônimos
iterador de função