지도의 GoLang 지도

Sheeraz Gul 2023년6월20일
  1. 지도의 GoLang 지도
  2. 내포된 지도 삭제
  3. 중첩된 맵 반복
지도의 GoLang 지도

이 튜토리얼은 GoLang에서 지도의 지도를 만드는 방법을 보여줍니다.

지도의 GoLang 지도

맵의 맵 또는 중첩 맵은 키-값 쌍 값이 맵이기도 한 맵입니다. GoLang에서는 지도의 지도를 만들 수 있습니다.

맵을 정의할 때 키와 값의 유형을 정의해야 합니다. 이 경우 키 유형은 int, 문자열 또는 기타 유형이 될 수 있으며 값 유형은 다시 map이 됩니다.

통사론:

var DemoMap = map[string]map[string]string{}

또는

var DemoMap = map[int]map[string]string{}

보시다시피 DemoMap은 키 문자열, int 유형 및 지도 유형으로 값으로 정의됩니다. 예를 들어 보겠습니다.

암호:

package main
import "fmt"

func main() {
    DemoMap := map[int]map[string]string{
        1: {
            "one":   "Delftstack1",
            "two":   "Delftstack2",
            "three": "Delftstack3",
        },
        2: {
            "four": "Delftstack4",
            "five": "Delftstack5",
            "Six":  "Delftstack6",
        },
        3: {
            "seven": "Delftstack7",
            "eight": "Delftstack8",
            "nine":  "Delftstack9",
        },
        4: {
            "ten":    "Delftstack10",
            "eleven": "Delftstack11",
            "twelve": "Delftstack12",
        },
    }
    fmt.Println(DemoMap)
}

위의 코드는 키 정수와 값 맵을 사용하여 맵의 맵을 생성한 다음 맵을 인쇄합니다.

출력:

map[
    1:map[one:Delftstack1 three:Delftstack3 two:Delftstack2]
    2:map[Six:Delftstack6 five:Delftstack5 four:Delftstack4]
    3:map[eight:Delftstack8 nine:Delftstack9 seven:Delftstack7]
    4:map[eleven:Delftstack11 ten:Delftstack10 twelve:Delftstack12]]

내포된 지도 삭제

GoLang의 delete() 메소드를 사용하여 중첩 맵을 삭제할 수 있습니다. 두 개의 매개변수를 사용합니다. 하나는 상위 맵이고 다른 하나는 중첩된 맵 키입니다.

예를 들어 보겠습니다.

암호:

package main
import "fmt"

func main() {
    DemoMap := map[int]map[string]string{
        1: {
            "one":   "Delftstack1",
            "two":   "Delftstack2",
            "three": "Delftstack3",
        },
        2: {
            "four": "Delftstack4",
            "five": "Delftstack5",
            "Six":  "Delftstack6",
        },
        3: {
            "seven": "Delftstack7",
            "eight": "Delftstack8",
            "nine":  "Delftstack9",
        },
        4: {
            "ten":    "Delftstack10",
            "eleven": "Delftstack11",
            "twelve": "Delftstack12",
        },
    }
    delete(DemoMap, 3)
    fmt.Println(DemoMap)
}

위의 코드는 상위 맵에서 키 3의 중첩 맵을 삭제합니다.

출력:

map[
    1:map[one:Delftstack1 three:Delftstack3 two:Delftstack2]
    2:map[Six:Delftstack6 five:Delftstack5 four:Delftstack4]
    4:map[eleven:Delftstack11 ten:Delftstack10 twelve:Delftstack12]]

마찬가지로 동일한 delete() 메서드를 사용하여 중첩 맵의 멤버를 삭제할 수 있습니다. 여기서 첫 번째 매개변수는 중첩 맵이고 두 번째 매개변수는 삭제할 키입니다.

암호:

package main
import "fmt"

func main() {
    DemoMap := map[int]map[string]string{
        1: {
            "one":   "Delftstack1",
            "two":   "Delftstack2",
            "three": "Delftstack3",
        },
        2: {
            "four": "Delftstack4",
            "five": "Delftstack5",
            "Six":  "Delftstack6",
        },
        3: {
            "seven": "Delftstack7",
            "eight": "Delftstack8",
            "nine":  "Delftstack9",
        },
        4: {
            "ten":    "Delftstack10",
            "eleven": "Delftstack11",
            "twelve": "Delftstack12",
        },
    }
    delete(DemoMap[3], "seven")
    fmt.Println(DemoMap)
}

위의 코드는 멤버 키 seven을 사용하여 키 3에서 중첩 맵의 멤버를 삭제합니다.

출력:

map[
    1:map[one:Delftstack1 three:Delftstack3 two:Delftstack2]
    2:map[Six:Delftstack6 five:Delftstack5 four:Delftstack4]
    3:map[eight:Delftstack8 nine:Delftstack9]
    4:map[eleven:Delftstack11 ten:Delftstack10 twelve:Delftstack12]]

중첩된 맵 반복

중첩 맵을 반복하려면 for 루프를 사용하여 맵의 인덱스 번호를 지정해야 합니다. 중첩 맵을 반복하는 예를 들어 보겠습니다.

암호:

package main
import "fmt"

func main() {
    DemoMap := map[int]map[string]string{
        1: {
            "one":   "Delftstack1",
            "two":   "Delftstack2",
            "three": "Delftstack3",
        },
        2: {
            "four": "Delftstack4",
            "five": "Delftstack5",
            "Six":  "Delftstack6",
        },
        3: {
            "seven": "Delftstack7",
            "eight": "Delftstack8",
            "nine":  "Delftstack9",
        },
        4: {
            "ten":    "Delftstack10",
            "eleven": "Delftstack11",
            "twelve": "Delftstack12",
        },
    }
    for key, value := range DemoMap[3] {
        fmt.Println(key, value)
    }
}

위의 코드는 상위 맵의 세 번째 위치에서 맵을 반복합니다.

출력:

seven Delftstack7
eight Delftstack8
nine Delftstack9
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Go Map