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