Go에서 전체지도를 반복하는 방법
Suraj Joshi
2023년1월30일
해시 테이블은 컴퓨터 과학에서 가장 강력하고 다양한 데이터 구조 중 하나입니다. 다른 프로그래밍 언어에 대한 다양한 해시 테이블 구현이 있습니다. Go에서 해시 테이블은 내장 된 map
데이터 형식으로 구현됩니다. 간단히 말해 ‘맵’은 ‘키-값’쌍의 모음입니다. Go에서for...range
문을 사용하여 한 번에 하나의key
를 검색하여map
의 전체keys
를 반복합니다.
지도 선언 및 초기화
map
은 다음 구문을 사용하여 선언 할 수 있습니다.
var map_name map[KeyType]ValueType
KeyType
은 비교 가능한datatype
이고ValueType
은map
자체를 포함한 모든 데이터 유형입니다.
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
그러나 맵의 ‘키’또는 ‘값’에 다른 데이터 유형을 사용하는 경우 ‘키’또는 ‘값’을 인쇄하는 동안 해당 특정 데이터 유형의 형식을 지정해야합니다. keys
로string
데이터 유형을 갖는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 is a backend software engineer at Matrice.ai.
LinkedIn