HOWTO · Go
지도의 GoLang 지도
이 튜토리얼은 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