Назад к вопросам
МТС
Yadro
Junior — Middle
79
Какие типы данных допускаются в качестве ключей для структуры map?
Компании, где спрашивали
Ответ от нейросети
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"