m[k]++ создаёт ключ, поэтому «посчитать и обнулить» через delete меняет поведение кода, который различает «ноль» и «нет». Реализуйте тип Hits с методами Bump, Total и Reset (через delete).
- Задача
- Решение
- Обсуждение
Hits: счётчик с reset
GolangРешение
func (h *Hits) Bump(k string) {
if h.m == nil {
h.m = make(map[string]int)
}
h.m[k]++
}
func (h *Hits) Total(k string) int {
return h.m[k]
}
func (h *Hits) Reset(k string) {
delete(h.m, k)
}