ExpertiDict

Go · Essencial · Inglês · Técnico

range

/ɹeɪndʒ/palavra-chave

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

Veja também

Todos os termos de Go