괴발개발 성장기

Study/Go 언어

[golang] 맵(map) 공부하기

지니유 2022. 3. 11. 23:18
반응형

#배경

타입이 *[]map[string]int64 인데 내가 적절하게 사용하지 못하고 있다는 것을 알게 되었다.

# Map(맵)

  • 키와 값으로 되어있는 테이블 형태의 컬렉션이다.
  • 내장 타입(int, int64, string, float)과 배열, 구조체, 포인터, 사용자 정의 타입을 키로 사용할 수 있다

# 초기화 방법

map[키타입]값타입{}
map[키타입]값타입{초기값}
make(map[키타입]값타입)
make(map[키타입]값타입, 초기용량)
  • 나는 보통 make(map[키타입]값타입) 많이 사용한다.

예시

    ex1 := map[string]int64{}
    fmt.Println("map[string]int64{} : ",ex1)

    ex2 := map[string]int64{"id":2,"count":1}
    fmt.Println("map[키타입]값타입{초기값} : ",ex2)

    ex3:=make(map[string]int64, 0)
    fmt.Println("make(map[string]int64, 0) : ",ex3)

    ex4:=make(map[string]int64)
    fmt.Println("make(map[string]int64) : ",ex4)

결과

map[string]int64{} :  map[]
map[키타입]값타입{초기값} :  map[count:1 id:2]
make(map[string]int64, 0) :  map[]
make(map[string]int64) :  map[]

# 요소 추가하는 방법

1) 변수명["키명"] = 값

    addValue := map[string]int64{}
    addValue["id"]=5
    addValue["count"]=4
    fmt.Println("첫번째 추가 방법 : ",addValue) //첫번째 추가 방법 :  map[count:4 id:5]

2) 한줄로 작성하기

    addValue2 := map[string]int64{"id":4,"count":1}
    fmt.Println("두번째 추가 방법 : ",addValue2) //두번째 추가 방법 :  map[count:1 id:4]

3) 여러줄로 작성하기

    addValue3 := map[string]int64{
        "id":4,
        "count":1, //여러줄로 쓸때에는 마지막에 ,(콤마)를 붙여준다.
    }
    fmt.Println("세번째 추가 방법 : ",addValue3) //세번째 추가 방법 :  map[count:1 id:4]
  • 여러줄로 쓸때에는 마지막에 ,(콤마)를 붙여준다.

# for range 이용해서 값 추출하기

    for index, value := range addValue3{
        fmt.Println("인덱스 값 : ",index,"값 : ",value)
    }

결과

인덱스 값 :  id 값 :  4
인덱스 값 :  count 값 :  1

# 원하는 값 추출하기

  • 변수명["키명"]

예시

  fmt.Println("addValue3[id] 값 :",addValue3["id"]) //addValue3[id] 값 : 4

# 값 수정하기

  • 변수명["키명"]= 값 키명이 있으면 수정이 되고 없으면 추가가 된다.
    fmt.Println("수정 전 : ",addValue3)  //수정 전 :  map[count:1 id:4]
    addValue3["id"]=9 
    fmt.Println("id가 있어서 수정 후 : ",addValue3) //id가 있어서 수정 후 :  map[count:1 id:9]

    addValue3["num"]=7
    fmt.Println("num이 없어서 추가 후 : ",addValue3) //num이 없어서 추가 후 :  map[count:1 id:9 num:7]

# 값 삭제하기

delete(변수명,키명)

예시

    delete(addValue3,"id")
    fmt.Println("삭제 후 : ",addValue3) //삭제 후 :  map[count:1 num:7]

 

# 이슈

https://github.com/YooGenie/go-study/issues/31

 

맵(map) 공부하기 · Issue #31 · YooGenie/go-study

 

github.com

 

 

 

 

 

반응형