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