이동-범위

그만큼 range 키워드는 for루프는 배열, 슬라이스, 채널 또는 맵의 항목을 반복합니다. 배열과 슬라이스를 사용하면 항목의 인덱스를 정수로 반환합니다. 맵을 사용하면 다음 키-값 쌍의 키를 반환합니다. 범위는 하나 또는 두 개의 값을 반환합니다. 범위 표현식의 왼쪽에 하나의 값만 사용되는 경우 다음 표에서 첫 번째 값입니다.

범위 표현 첫 번째 가치 두 번째 값 (선택 사항)
[n] E 배열 또는 슬라이스 인덱스 i int a [i] E
문자열의 문자열 유형 인덱스 i int 룬 정수
맵 m 맵 [K] V 키 k K 값 m [k] V
채널 c 채널 E 요소 e 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)
   }
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

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