본문 바로가기
Programming/Golang

go map 초기화

by 라바킴 2020. 10. 18.

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

댓글