Sobes.tech
Назад к вопросам
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"

Если нужно использовать несравнимые типы, например срезы, в качестве ключей, обычно применяют хеширование или преобразование в строку.