Vai - Gamma

Il range la parola chiave è utilizzata in forloop per iterare su elementi di un array, slice, canale o mappa. Con array e slice, restituisce l'indice dell'elemento come numero intero. Con le mappe, restituisce la chiave della successiva coppia chiave-valore. L'intervallo restituisce uno o due valori. Se viene utilizzato un solo valore a sinistra di un'espressione di intervallo, è il primo valore nella tabella seguente.

Espressione di intervallo 1 ° valore 2 ° valore (opzionale)
Array o slice a [n] E indice i int a [i] E
String tipo di stringa indice i int rune int
mappa m mappa [K] V chiave k K valore m [k] V
canale c chan E elemento e E nessuna

Esempio

Il paragrafo seguente mostra come utilizzare l'intervallo:

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 il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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