Sobes.tech
Back to questions
Senior
6

Что такое map в Go, как работает, какие особенности?

Companies where asked
Betera Group

Answer from AI

sobes.tech AI

В Go map — это встроенный тип данных, реализующий ассоциативный массив или словарь, где ключи сопоставляются со значениями.

Особенности map в Go:

  • Ключи могут быть любого типа, который поддерживает сравнение (например, строки, числа, указатели).
  • Значения могут быть любого типа.
  • Инициализировать можно с помощью make или литерала:
m := make(map[string]int)
m2 := map[string]int{"a": 1, "b": 2}
  • Доступ к элементам через m[key], если ключ отсутствует — возвращается нулевое значение типа.
  • Проверка наличия ключа:
val, ok := m["key"]
if ok {
    // ключ существует
}
  • map не гарантирует порядок обхода элементов.
  • map не является потокобезопасным, при параллельном доступе нужна синхронизация.

Пример:

m := make(map[string]int)
m["apple"] = 5
fmt.Println(m["apple"]) // 5

val, ok := m["banana"]
if !ok {
    fmt.Println("banana not found")
}