Операции с картой
Запись и чтение
m := make(map[string]int)
m["x"] = 10 // запись (или обновление)
v := m["x"] // чтение
fmt.Println(v) // 10
Удаление
delete(m, "x") // если ключа нет — ничего не происходит
Проверка существования ключа
if v, ok := m["key"]; ok {
fmt.Println("найдено:", v)
}
len
fmt.Println(len(m)) // количество пар ключ-значение
Карта как счётчик
Распространённый паттерн — подсчёт частоты:
freq := make(map[string]int)
words := []string{"go", "go", "rust", "go"}
for _, w := range words {
freq[w]++
}
// freq == {"go": 3, "rust": 1}
Нулевое значение int (0) позволяет писать freq[w]++ без предварительной проверки наличия ключа.
Упражнения
| № | Задание | Сложность |
|---|---|---|
| 1 | Упражнение 1 | easy |
| 2 | Упражнение 2 | medium |
| 3 | Упражнение 3 | medium |