Sobes.tech
Назад к вопросам
Senior
2

Какие типы данных можно использовать в качестве ключа для map? Можно ли использовать массив как ключ?

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

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

sobes.tech AI

В Go ключом для map может быть любой тип, который поддерживает операцию сравнения == и !=. Это значит, что ключами могут быть базовые типы (int, string, bool и т.д.), указатели, структуры, если все их поля сравнимы, а также интерфейсы, если динамический тип сравним.

Массивы в Go сравнимы, если их элементы сравнимы, поэтому массивы можно использовать как ключи в map. Например:

m := make(map[[3]int]string)
m[[3]int{1, 2, 3}] = "value"

Однако срезы (slice) нельзя использовать как ключи, так как они не сравнимы (кроме сравнения с nil).