map은 key:value로 이루어져 key에 대응하는 value를 찾는 해시 테이블을 구현한 자료구조입니다. 

선언하는 방법은 아래와 같습니다.

package main


func main() {
   var a map[int]string // nil값을 가지므로 (Nil Map) 어떤 값도 선언할 수 없음. make()를 사용해 map을 초기화 해줘야 사용 가능
   a = make(map[int]string)
   a[1] = "test"

   //{} 내부에 값을 바로 선언 가능
   b := map[int]string {
      1: "test",
   }

   c := make(map[int]string)
   c[1] = "test"

   println(a[1])
   println(b[1])
   println(c[1])
}


아래는 map 타입의 변수에 값 체크 및 선언, 삭제, 출력을 하는 예제입니다.

package main

import "fmt"

func main() {
   a := map[int]string {
      1: "test",
      2: "test2",
   }
   // 값 재정의 및 선언
   a[3] = "test3"
   // 해당 map에 key가 존재하는지 확인
   val, exists := a[3]
   fmt.Println(val, exists) // test3 true

   // key 삭제
   delete(a, 3)

   val, exists = a[3]
   fmt.Println(val, exists) // 블랭크 false


   // map 내부 전체 출력
   for key, val := range a {
      fmt.Println(key, val)
   }
}


'언어 > Golang' 카테고리의 다른 글

[Golang] 에러  (0) 2020.02.23
[Golang] package 관리, 선언하기  (0) 2020.02.16
[Golang] http 모듈 사용하기  (0) 2020.02.16
[Golang] map  (0) 2020.02.09
[Golang] 배열 (array) & 슬라이스 (slice)  (0) 2020.02.09
[Golang] 함수 (function)  (0) 2020.02.09
[GO] 데이터 타입 & 연산자  (0) 2020.02.09