Назад к вопросам
Junior — Middle
107
Как определить, какое значение можно использовать в качестве ключа в структуре данных Map?
Компании, где спрашивали
Lamoda Tech
Ответ от нейросети
sobes.tech AI
В Go ключом для map может быть любой тип, который поддерживает сравнение с помощью оператора ==. Это значит, что ключ должен быть сравнимым (comparable).
Что можно использовать в качестве ключа:
- Примитивные типы: строки, числа, булевы значения.
- Указатели.
- Структуры, если все их поля сравнимы.
Что нельзя использовать:
- Срезы (slice), карты (map), функции, так как они не сравнимы.
Пример:
m := make(map[string]int) // строка — валидный ключ
m["key"] = 42
// Структура с сравнимыми полями
type Point struct {
X, Y int
}
var points = make(map[Point]string)
points[Point{1, 2}] = "A"
Если попытаться использовать несравнимый тип в качестве ключа, компилятор выдаст ошибку.