Sobes.tech
Назад к вопросам
Junior — Middle
79

Какие типы данных допускаются в качестве ключей для структуры map?

Компании, где спрашивали
МТСМТС
YadroYadro

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

sobes.tech AI

В Go ключами для map могут быть только те типы данных, которые поддерживают операцию сравнения (comparable). Это значит, что ключами могут быть:

  • Булевы значения (bool)
  • Числа (int, float, complex и т.д.)
  • Строки (string)
  • Указатели
  • Интерфейсы, если динамический тип поддерживает сравнение
  • Структуры, если все их поля сравнимы

Нельзя использовать срезы, карты, функции и другие несравнимые типы в качестве ключей, так как они не поддерживают оператор ==.

Пример:

m := make(map[string]int)
m["key"] = 42

// Структура с сравнимыми полями
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "A point"