Go에서 전체지도를 반복하는 방법

Suraj Joshi 2023년1월30일
  1. 지도 선언 및 초기화
  2. Go의지도를 반복
Go에서 전체지도를 반복하는 방법

해시 테이블은 컴퓨터 과학에서 가장 강력하고 다양한 데이터 구조 중 하나입니다. 다른 프로그래밍 언어에 대한 다양한 해시 테이블 구현이 있습니다. Go에서 해시 테이블은 내장 된 map데이터 형식으로 구현됩니다. 간단히 말해 ‘맵’은 ‘키-값’쌍의 모음입니다. Go에서for...range 문을 사용하여 한 번에 하나의key를 검색하여map의 전체keys를 반복합니다.

지도 선언 및 초기화

map은 다음 구문을 사용하여 선언 할 수 있습니다.

var map_name map[KeyType]ValueType

KeyType은 비교 가능한datatype이고ValueTypemap 자체를 포함한 모든 데이터 유형입니다.

package main

import "fmt"

func main() {
    map_1 := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }

    fmt.Println(map_1)
}        

출력:

map[0:Alok 1:Reman 2:Riken 3:Rudra]

내장 된 make() 함수를 사용하여 맵을 작성할 수도 있습니다.

package main

import "fmt"

func main() {
    var map_2 = make(map[int]string)
    map_2[0] = "Alok"
    map_2[1] = "Reman"
    map_2[2] = "Riken"
    map_2[3] = "Rudra"
    fmt.Println(map_2)

}        

출력:

map[0:Alok 1:Reman 2:Riken 3:Rudra]

Go의지도를 반복

for...range 문을 사용하여 전체map을 반복 할 수 있습니다. 그러나map이 정렬되지 않은 콜렉션이므로map에 대한 반복 순서는 고정되지 않습니다.

Go에서map의 모든 키와 값을 반복

package main

import "fmt"

func main() {
    map_1 := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }

    for k, v := range map_1 {
        fmt.Printf("Key:%v Value: %s\n", k, v)
    }

}    

출력:

Key:0 Value: Alok
Key:1 Value: Reman
Key:2 Value: Riken
Key:3 Value: Rudra

그러나 맵의 ‘키’또는 ‘값’에 다른 데이터 유형을 사용하는 경우 ‘키’또는 ‘값’을 인쇄하는 동안 해당 특정 데이터 유형의 형식을 지정해야합니다. keysstring 데이터 유형을 갖는map의 예는 다음과 같습니다.

package main

import "fmt"

func main() {
    map_1 := map[string]string{
        "Giri    ": "Alok",
        "Nembang ": "Reman",
        "Maharjan": "Riken",
        "Jha     ": "Rudra",
    }

    for k, v := range map_1 {
        fmt.Printf("Key:%v  Value: %s\n", k, v)
    }

}
    

출력:

Key:Giri      Value: Alok
Key:Nembang   Value: Reman
Key:Maharjan  Value: Riken
Key:Jha       Value: Rudra

Go map에서만 키 반복

package main

import "fmt"

func main() {
    map_1 := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }

    for k := range map_1 {
        fmt.Printf("Key:%v\n", k)
    }

}

출력:

Key:0
Key:1
Key:2
Key:3

Go map에서만 값을 반복

package main

import "fmt"

func main() {
    map_1 := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }

    for _, v := range map_1 {
        fmt.Printf("Value:%s\n", v)
    }
}    

출력:

Value:Riken
Value:Rudra
Value:Alok
Value:Reman

위의 출력에서 ​​’키’와 ‘값’이 짝을 이루는 순서와 ‘키-값’이 인쇄되는 순서는 ‘지도’가 정렬되지 않은 컬렉션이기 때문에 다를 수 있습니다. 따라서 걱정할 필요가 없습니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Go Map