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