Sobes.tech
Назад к вопросам
Senior
3

Что можешь рассказать про map в Go?

Компании, где спрашивали
Small

Ответ от нейросети

sobes.tech AI

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

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

  • Ключи и значения имеют определённые типы, например, map[string]int — ключи строки, значения целые числа.
  • Map инициализируется с помощью функции make, например: m := make(map[string]int).
  • Доступ к элементам через m[key].
  • Если ключ отсутствует, возвращается нулевое значение типа значения.
  • Можно проверить наличие ключа с помощью второго возвращаемого значения: val, ok := m[key].
  • Map не упорядочены, порядок обхода произвольный.
  • Map не являются потокобезопасными, для конкурентного доступа нужно использовать синхронизацию.

Пример:

package main
import "fmt"

func main() {
    m := make(map[string]int)
    m["apple"] = 5
    m["banana"] = 3

    val, ok := m["apple"]
    if ok {
        fmt.Println("apple:", val)
    }

    // Удаление ключа
    delete(m, "banana")
}