Updated:

less than 1 minute read

개요

  • 키와 값이 하나의 쌍으로 저장되는 컬렉션
  • 할당되지 않은 키에 접근하면 해당 타입의 제로값 반환
  • 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