Go Lang의 맵(map)은 잘 정리되어 있는 서류 문서함과 같습니다.
Go Lang의 맵은 저장된 값을 키(key)를 통해 접근할 수 있는 자료구조로, 키를 사용해 맵의 데이터를 편리하게 가져 올 수 있습니다.
- 맵(Map)에서의 선언 역시, 배열과 슬라이스와 유사한 형태를 가집니다.
var 맵이름 map[키type]값type // 맵 변수의 선언 make(map[키type]값type // 맵의 실제값 생성
package main
import "fmt"
func main() {
Greeting := make(map[string]string)
Greeting["English"] = "Good morning!"
Greeting["Français"] = "Bonjour!"
fmt.Println(Greeting)
}
출력결과물
map[English:Good morning! Français:Bonjour!]
위의 예제를 통해 맵에 string타입 지정후, 영어 인사와 프랑스어 인사를 작성해보았습니다.
Go lang에서는 맵의 데이터를 간편하게 저장하고 조회할 수 있습니다.
package main
import "fmt"
func main() {
var iMap map[int]int
iMap = make(map[int]int)
iMap[0] = 3
iMap[5] = 9
val, suc := iMap[3]
fmt.Println(iMap[0], iMap[5], iMap[3])
fmt.Println(val, suc)
}
출력결과물
3 9 0
0 false
위의 예제는 iMap에 0이 들어가면 3이 나오고, 5가 들어가면 9가 나오도록 구조를 만든 것 입니다.
맵의 데이터를 조회할 때는 리턴 값에서 두번째 자리(예제에서는 suc)에 키의 존재 여부를 확인하도록 저장되며 iMap에는 값이 없기 때문에 false가 뜨는 것을 확인할 수 있습니다.
이번에는 delete를 활용해서 예제 8에서 사용했던 인사 맵에 저장된 데이터를 삭제해보도록 합시다.
package main
import "fmt"
func main() {
Greeting := make(map[string]string)
Greeting["English"] = "Good morning!"
Greeting["Français"] = "Bonjour!"
delete(Greeting, "English")
fmt.Println(Greeting)
}
출력결과물
map[Français:Bonjour!]