반응형
#배경
타입이 *[]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
반응형
'Study > Go 언어' 카테고리의 다른 글
[golang] 배열을 string으로 변경하는 방법 (0) | 2022.05.09 |
---|---|
[golang] sort 함수 사용하여 정렬하기 (0) | 2022.04.22 |
[golang] string를 잘라서 int64로 배열에 저장하기 (0) | 2022.03.07 |
[golang] 숫자 랜덤으로 생성하기 (0) | 2022.03.05 |
[golang] 10자리이하 숫자를 입력하면 앞에 0을 채워서 10자리 수 만들기 (0) | 2022.02.28 |