Map

다른 언어들에서 제공하는 hash table, dictionary와 같음.
map의 values로 primitive data타입 이외에도 struct, map과 같은 자료구조도 사용가능.
map을 nested로 선언 가능.(ex: map[string]map[string]float32)

declare

var $NAME map[$KEY_TYPE]$VALUE_TYPE = make(map[$KEY_TYPE]$VALUE_TYPE)
$NAME := make(map[$KEY_TYPE]$VALUE_TYPE)

set values

$NAME[$KEY] = $VALUE

access the values

$NAME[$KEY]

존재하지 않는 키 값으로 조회했을 시 빈 값(not null, 0 values) 반환.

value, ok := mapSample["testKey"] // key에 해당하는 value가 있으면 ok는 true, 없으면 false
if value, ok := mapSample["testKey"]; ok {
	fmt.Println(value) // 해당 key에 대한 value가 존재할 때만 출력
}

iterate

mapSample := make(map[string]int)

for key, value := range mapSample {
	fmt.Println(key, value)
}

delete key and value

delete($MAP_NAME, $KEY)