Sobes.tech
Назад к вопросам
Middle+
5

Можно ли использовать структуры как ключи в map?

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

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

sobes.tech AI

В Go структуры можно использовать как ключи в map, если они удовлетворяют требованиям сравнимости (comparable). Это значит, что все поля структуры должны быть сравнимыми типами (например, базовые типы, строки, указатели, другие сравнимые структуры).

Если структура содержит срезы, карты, функции или другие несравнимые типы, то использовать её как ключ нельзя.

Пример использования структуры как ключа:

type Point struct {
    X, Y int
}

m := make(map[Point]string)
m[Point{X: 1, Y: 2}] = "A"

Здесь Point состоит из двух int, которые сравнимы, поэтому структура тоже сравнима и может быть ключом.