더북(TheBook)

3.5.2 값 찾기

인덱스 연산자([])로 특정 키에 대한 값을 얻을 수 있다. 키가 없을 때는 값으로 지정한 타입의 제로값을 반환한다.

numberMap := map[string]int{}
numberMap["zero"] = 0
numberMap["one"] = 1
numberMap["two"] = 2
fmt.Println(numberMap["zero"])  // 0
fmt.Println(numberMap["one"])   // 1
fmt.Println(numberMap["two"])   // 2
fmt.Println(numberMap["three"]) // 0

이 예제에서는 키가 "three "인 요소의 값이 실제로 0인지, 아니면 키가 "three "인 요소가 없어서 제로값을 반환했는지 알 수 없다.

[] 연산자를 사용하면 값을 얻어올 때 반환 값을 매개변수 두 개로 받는다. 첫 번째에는 키에 해당하는 값이 반환되고(키가 없으면 제로값을 반환), 두 번째에는 키가 있는지 없는지 true 또는 false 값으로 반환된다. 이 방법으로 키가 실제로 있는지 확인할 수 있다.

if v, ok := numberMap[“three”]; ok {
    fmt.Println(”‘three’ is in numberMap. value: “, v)
} else {
    fmt.Println(”‘three’ is not in numberMap”)
}

키가 있는지만 체크하고 싶다면 첫 번째 반환 값에 빈 식별자( )를 사용하면 된다.

if , ok := numberMap[“four”]; !ok {
    numberMap[“four”] = 4
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.