본문 바로가기

Go/[Go]배열, 슬라이스, 맵

Go 언어에서의 map의 기본적인 구조를 설명하겠습니다.

 

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

var devhsops1 map[string]int
devhsops1 = make(map[string]int) // 맵 생성

devhsops2 := make(map[string]int) // 빈 맵 생성
devhsops3 := map[string]int{} // 빈 맵 생성

devhsops4 := map[string]int{"a":1, "b":2, "c":3} // 맵 초기화

이처럼 map은 슬라이스와 마찬가지로 값이 자동으로 생성되지 않기 때문에 make 함수를 이용해 직접 생성해주어야합니다.

 

map에서 할당된 값과 zero 값 구분 방법

 

devhsops4["a"] : 1이 할당된 값
devhsops4["z"] : 할당되지 않은 zero 값

구분 방법

var value int
var ok bool

value, ok = devhsops4["a"]
if !ok{
    fmt.Println("할당되지 않은 zero 값입니다.")
}
else{
    fmt.Println("할당된 값입니다.")
}
value, ok = devhsops4["z"]
if !ok{
    fmt.Println("할당되지 않은 zero 값입니다.")
}
else{
    fmt.Println("할당된 값입니다.")
}

 

delete 함수를 이용하여 map 키/값 삭제하기

 

devhsops1 := map[string]int{"a":2, "b":3}

delete(devhsops1, "a")

 

for range와 map

 

devhsops1 := map[string]int{"a":1, "b":2}
// 키,값 순회
for key, value := range devhsops1{

}
// 키만 순회
for key := range devhsops1{ // => 생략가능

}
// 값만 순회
for _, value := range devhsops1{

}

 

'Go > [Go]배열, 슬라이스, 맵' 카테고리의 다른 글

슬라이스  (0) 2021.11.22
텍스트 파일 읽기  (0) 2021.11.22
배열  (0) 2021.11.22