Ключевое слово range используется в цикле for для перебора элементов массива, среза, канала или карты. С массивом и слайсами он возвращает индекс элемента в виде целого числа. С картами он возвращает ключ следующей пары ключ-значение. Диапазон возвращает одно значение или два. Если слева от выражения диапазона используется только одно значение, это будет 1-е значение в следующей таблице.
Выражение диапазона | 1-е значение | 2-е значение (необязательно) |
---|---|---|
Массив или нарезать [n] E | Индекс я Int | а я |
Строка с типом строки | Индекс я Int | Руна Инт |
карта м карта [K] V | ключ к к | значение m [k] V |
канал с тян E | элемент е Е | никто |
пример
Следующий абзац показывает, как использовать диапазон —
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) } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —