Sobes.tech
Back to questions
Middle+
4

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

Companies where asked
WaterWal

Answer from AI

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, которые сравнимы, поэтому структура тоже сравнима и может быть ключом.