Go · Essencial · Inglês · Técnico
range
Palavra-chave que percorre slices, arrays, strings, maps, canais, inteiros e funções iteradoras em um for, entregando índice e valor ou chave e valor.
Onde usar
'for i, v := range xs' é o loop padrão. Em strings o range entrega runes, não bytes, e em maps a ordem varia a cada execução.
Em código
xs := []int{1, 2, 3}
for i, v := range xs {
xs[i] = v * 2
}
for i := range 3 { // Go 1.22+
fmt.Print(i, " ")
}
fmt.Println(xs)Exemplos
Just range over the slice and skip the index.
É só dar range no slice e ignorar o índice.
Range over a string gives you runes, not bytes.
Range sobre uma string dá runes, não bytes.
Cuidado
O valor v é uma cópia do elemento: alterar v não muda o slice. Use o índice para escrever, xs[i] = ...
Sinônimos
laço for range