키의 상태가 HashMap API를 고른다

같은 키는 값 하나에만 연결된다. 먼저 “읽기인가, 없을 때 만들기인가, 기존 값을 바꿀 것인가”를 정하면 메서드가 선명해진다.

읽기

키가 없을 수도 있다

map.get(&key) → Option<&V>

None을 기본값·분기·오류 중 어떤 방식으로 처리할지 호출부가 결정한다.

없을 때

기본값으로 시작한다

entry(key).or_insert(default)

키가 비어 있을 때만 삽입하고, 이미 있으면 기존 값의 &mut V를 돌려준다.

있어도

새 값으로 교체한다

map.insert(key, value)

같은 키가 있으면 이전 값을 덮어쓴다. 반환된 Option<V>로 교체 여부도 알 수 있다.

누적

기존 값에서 갱신한다

*map.entry(key).or_insert(0) += 1

가변 참조자를 역참조하여 읽기와 쓰기를 한 흐름으로 묶는다.