Map in golang
- 키(Key)에 대응하는 값(Value)을 신속히 찾는 해시테이블(Hash table)을 구현한 자료구조
- format : map[Key]Value
# 선언
var results map[string]string
- map은 reference 타입이므로 nil 존재
- 이 상태의 map을 "Nil Map" 이라함
panic: assignment to entry in nil map
goroutine 1 [running]:
main.main()
/Users/larva/go/src/go-study/main.go:8 +0x4f
exit status 2
- 초기화 하지 않은 nil map을 사용하려고 하면 panic 발생
- panic : 컴파일러가 찾아내지 못하는 error
- nil map에는 어떠한 값도 넣을 수 없으니 초기화 시키거나 make로 생성
# 초기화
var results = make(map[string]string)
make() 함수
- 해시테이블 자료구조를 메모리에 생성하고 그 메모리를 가리키는 map value를 return
- map value : 내부적으로 runtime.hmap 구조체를 가리키는 포인터
- 즉, results 변수는 이 해시테이블을 가리키는 map을 가리키게 되는 것!
var results = map[string]string{}
{} : literal 사용
- Map 타입 뒤 { } 괄호 안에 "키: 값" 들을 열거 (공백 가능)
'Programming > Golang' 카테고리의 다른 글
[golang] interface와 reflect, 그리고 OOP (0) | 2021.03.28 |
---|---|
[golang/err] import cycle not allowed (0) | 2019.04.06 |
댓글