티스토리 뷰

Programming Language/Go

[Go] map

SdardewValley 2021. 11. 11. 22:00
반응형

map

키와 값의 쌍으로 이루어진 형태의 자료구조

 

💡 key 값은 비교 연산자 (== , !=)를 사용하여 값을 비교할 수 있어야 한다.
💡 value 값은 모두 가능하다.

 

key 값으로 가능한 값

  • 내장 타입: int, float, string ...
  • 내장 타입 기반의 데이터: 배열, struct, 사용자 정의 타입, 포인터
💡 슬라이스와 맵 같은 참조타입은 비교 연산자를 사용할 수 없기 때문에 키로 사용 불가능하다
💡 배열은 문자열로 변환하여 키로 사용할 수 있다

 

 

생성 & 초기화

map을 생성하는 방법

  • map[키타입]값타입{}
  • map[키타입]값타입{초기값}
  • make(map[키타입]값타입, 초기용량)
  • make(map[키타입]값타입)

map 생성 1
map 생성 2

 

값 접근

키로 값에 접근을 하기 위해서는 배열 및 슬라이스와 마찬가지로 인덱스 연산자 [ ] 를 사용하면 된다.

 

map에서 2개의 리턴값을 받은 경우

키가 없을 때는 값으로 지정한 타입의 0값을 리턴한다. 이 때, 만약 값이 0이라서 0값을 리턴했는지 아님 정말 값이 0값인지 알 수 없을 수도 있다. 이런 경우 [] 연산자를 사용하여 리턴 값을 두 개를 받으면 된다. 첫 번째 리턴 값은 키에 대응하는 값이고, 두 번째 리턴값은 키가 map에 있는지 없는지를 true/false 값 으로 나타낸 것이다.

 

for ... range를 map에 적용하여 키와 값을 같이 반환할 수 있다. for ... range를 통해 접근하는 경우 요소에 접근 순서는 예측할 수 없다.

 

추가 & 수정 & 삭제

추가와 수정은 인덱스 연산자 [] 를 사용하면 된다.

 

 

key가 three인 값을 삭제
출력 결과

요소를 삭제하고 싶으면 delete 함수를 사용하면 된다. 첫 번째 파라미터로 슬라이스, 두 번째 파라미터로 키 값을 주면 된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함