map 타입

map은 순서없이 구성된 단일 타입 요소들의 그룹이며, 요소의 타입은 요소 타입(element type)이라고 부른다. map에서는 키 타입(key type)의 고유한 를 이용해 요소에 접근할 수 있다. 초기화되지 않은 map의 값은 nil이다.

MapType     = "map" "[" KeyType "]" ElementType .
KeyType     = Type .

피연산자인 키의 타입은 비교 연산자==!=을 완전히 지원해야 한다; 때문에 키 타입으로 함수, map, 또는 슬라이스를 사용할 수 없다. 키가 인터페이스 타입인 경우는 동적으로 정해지는 값들에 대해 비교 연산자들을 사용할 수 있어야 한다; 그렇지 않을 경우 런타임 패닉을 초래한다.

map[string]int
map[*T]struct{ x, y float64 }
map[string]interface{}

map m에 대한 길이는 내장 함수인 len을 이용해 구할 수 있으며, 이 길이는 프로그램 실행 중 변경될 수 있다. 프로그램 실행 중 할당(assignments)을 이용해 새로운 요소를 추가할 수 있으며, 인덱스 식(index expressions)을 이용해 요소에 접근할 수 있다; 내장 함수인 delete를 사용해 요소를 삭제할 수도 있다.

내장 함수인 make를 이용해 새로운 empty map을 만들 수 있다. make 함수의 인자로는 map 타입을 전달하고, 추가인자로 용량(capacity)을 사용할 수 있다.

make(map[string]int)
make(map[string]int, 100)

map의 크기는 초기에 설정된 용량(capacity)에 의해 결정되지 않는다. nil map인 경우를 제외하고는 저장된 요소의 수에 맞게 map의 크기는 늘어난다. 새로운 요소를 추가할 수 없는 것을 제외하면 nil map은 empty map과 동일하다.

results matching ""

    No results matching ""