Учебники

Go — Range

Ключевое слово range используется в цикле for для перебора элементов массива, среза, канала или карты. С массивом и слайсами он возвращает индекс элемента в виде целого числа. С картами он возвращает ключ следующей пары ключ-значение. Диапазон возвращает одно значение или два. Если слева от выражения диапазона используется только одно значение, это будет 1-е значение в следующей таблице.

Выражение диапазона 1-е значение 2-е значение (необязательно)
Массив или нарезать [n] E Индекс я Int а я
Строка с типом строки Индекс я Int Руна Инт
карта м карта [K] V ключ к к значение m [k] V
канал с тян E элемент е Е никто

пример

Следующий абзац показывает, как использовать диапазон —

Live Demo

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)
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —