개요
- 키와 값이 하나의 쌍으로 저장되는 컬렉션
- 할당되지 않은 키에 접근하면 해당 타입의 제로값 반환
- make 함수 혹은 맵 리터럴을 이용하여 생성
- 맵의 제로 값은 nil이며 슬라이스와 달리 빈 맵으로 동작하지 않음
- 두번째 반환 값을 통해 해당 키 값의 존재 여부 판단
- delete 함수를 통해 키 삭제
예제
- 코드
package main
import "fmt"
func main() {
var m1 map[int]string
fmt.Printf("1 : %#v\n", m1)
m1 = make(map[int]string)
fmt.Printf("2 : %#v\n", m1)
m2 := make(map[int]string)
m3 := map[int]string{1: "a", 2: "b"}
fmt.Println("3 : ", m2, m3)
m := map[int]string{1: "a", 2: "b"}
m[3] = "c"
println("4 : ", m[3])
value, exist := m[3]
println("5 : ", value, exist)
value, exist = m[5]
println("6 : ", value, exist)
delete(m, 2)
fmt.Println("7 : ", m)
for key, value := range m {
println("8 : ", key, value)
}
}
- 실행 결과
1 : map[int]string(nil)
2 : map[int]string{}
3 : map[] map[1:a 2:b]
4 : c
5 : c true
6 : false
7 : map[1:a 3:c]
8 : 3 c
8 : 1 a