Go - Range

o range palavra-chave é usada em forloop para iterar sobre itens de uma matriz, fatia, canal ou mapa. Com matriz e fatias, ele retorna o índice do item como inteiro. Com mapas, ele retorna a chave do próximo par de valores-chave. O intervalo retorna um valor ou dois. Se apenas um valor for usado à esquerda de uma expressão de intervalo, será o primeiro valor na tabela a seguir.

Expressão de intervalo 1º valor 2º valor (opcional)
Matriz ou fatia a [n] E índice i int a [i] E
String s tipo de string índice i int runa int
mapa m mapa [K] V chave k K valor m [k] V
canal c chan E elemento e E Nenhum

Exemplo

O parágrafo a seguir mostra como usar o intervalo -

package main

import "fmt"

func main() {
   /* create a slice */
   numbers := []int{0,1,2,3,4,5,6,7,8} 
   
   /* print the numbers */
   for i:= range numbers {
      fmt.Println("Slice item",i,"is",numbers[i])
   }
   
   /* create a map*/
   countryCapitalMap := map[string] string {"France":"Paris","Italy":"Rome","Japan":"Tokyo"}
   
   /* print map using keys*/
   for country := range countryCapitalMap {
      fmt.Println("Capital of",country,"is",countryCapitalMap[country])
   }
   
   /* print map using key-value*/
   for country,capital := range countryCapitalMap {
      fmt.Println("Capital of",country,"is",capital)
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Slice item 0 is 0
Slice item 1 is 1
Slice item 2 is 2
Slice item 3 is 3
Slice item 4 is 4
Slice item 5 is 5
Slice item 6 is 6
Slice item 7 is 7
Slice item 8 is 8
Capital of France is Paris
Capital of Italy is Rome
Capital of Japan is Tokyo
Capital of France is Paris
Capital of Italy is Rome
Capital of Japan is Tokyo