Go by Example: [10] Maps
Maps
맵(Map)은 Go
언어에서 기본적으로 제공하는 연관된 데이터를 다룰 수 있는 자료구조입니다.
이 자료형은 다른언어에서는 해쉬(hash)값이나 사전(Dicts)형으로 불리는 데이터 구조입니다.
package main
import "fmt"
func main() {
m := make(map[string]int) // [1]
m["k1"] = 7 // [2]
m["k2"] = 13
fmt.Println("map:", m) // [3]
v1 := m["k1"] // [4]
fmt.Println("v1:", v1)
fmt.Println("len:", len(m)) // [5]
delete(m, "k2") // [6]
fmt.Println("map:", m)
_, prs := m["k2"] // [7]
fmt.Println("prs:", prs)
n := map[string]int{"foo": 1, "bar": 2} // [8]
fmt.Println("map:", n)
}
make(map[key-type]value-type)
형식을 사용해서 빈 맵을 생성하고 있습니다.name[key] = value
형태로 맵에 데이터를 키값을 기준으로 설정하고 있습니다.fmt.Println()
함수로 맵을 출력하면 모든key/vaue
를 출력합니다.name[key]
형식으로 맵의 해당키의 값을 추출해 낼 수 있습니다.len()
내장함수를 통해서, 현재 맵의키/값
쌍의 개수를 알아낼 수 있습니다.delete()
내장함수를 통해서, 현재 맵의 특정 값(키/값)을 제거할 수 있습니다.- 맵은 내부적으로 데이터를 구별하는 맵식별자를 추가적으로 리턴합니다.
이값은0
이거나 빈문자열(""
)값을 가진 키를 찾을때 사용합니다. 예제에서는 이값이
특별히 필요하지 않기 때문에_
변수로 해당 값을 무시했습니다. - 맵은 선언과 동시에 초기화해서 맵을 생성할 수 있습니다. (
make()
함수를 통하지 않았습니다.)
실행하면 다음과 같습니다.
$ go run maps.go
map: map[k1:7 k2:13]
v1: 7
len: 2
map: map[k1:7]
prs: false
map: map[foo:1 bar:2]
fmt.Println()
함수를 이용해서 맵을 출력하면 map[k:v k:v]
와 같이 키/값을 모두 출력합니다.