저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
맵 사용하기
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
맵에 데이터 저장하고 조회하기
맵에 데이터를 넣으려면 [ ]
(대괄호)안에 키를 지정하고 값을 대입합니다. 마찬가지로 값을 조회할 때도 대괄호 안에 키를 지정하면 됩니다. 다음은 태양계 행성들의 공전 주기를 맵에 저장한 것입니다.
solarSystem := make(map[string]float32) // 키는 string, 값은 float32인 맵 생성 및 공간 할당
solarSystem["Mercury"] = 87.969 // 맵[키] = 값
solarSystem["Venus"] = 224.70069
solarSystem["Earth"] = 365.25641
solarSystem["Mars"] = 686.9600
solarSystem["Jupiter"] = 4333.2867
solarSystem["Saturn"] = 10756.1995
solarSystem["Uranus"] = 30707.4896
solarSystem["Neptune"] = 60223.3528
fmt.Println(solarSystem["Earth"]) // 365.25641
실행 결과
365.2564
맵에서 존재하지 않는 키를 조회했을 때는 빈 값이 출력됩니다. 여기서는 값의 자료형이 float32이므로 0이 출력됩니다. 자료형이 문자열이라면 빈 문자열("")이 출력됩니다.
fmt.Println(solarSystem["Pluto"]) // 0: 존재하지 않는 키를 조회(명왕성은 행성 지위 상실...)
맵에 데이터가 있는지 검사할 때는 값을 조회한 뒤 리턴값을 활용합니다. 리턴값에서 두 번째 변수에 키의 존재 여부가 저장되며 키가 있으면 true, 없으면 false입니다. 다음과 같이 if 조건문으로 간단하게 맵에 키가 있는지 검사할 수 있습니다.
value, ok := solarSystem["Pluto"] // 맵에 키가 있는지 검사할 때는 리턴값을 두 개 활용
fmt.Println(value, ok) // 0 false: 맵에 키가 없으면 두 번째 리턴값으로 false가 리턴됨
if value, ok := solarSystem["Saturn"]; ok {
fmt.Println(value) // 10756.1995
}
실행 결과
0 false
10756.199
이런 형태의 if
조건문은 Go 언어로 프로그래밍할 때 자주 나옵니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.