Назад к вопросам
Junior — Middle
81
Можно ли использовать структуры как ключи в associative array или map?
Ответ от нейросети
sobes.tech AI
В Go ключами в map могут быть только те типы, которые поддерживают операцию сравнения (оператор ==). Структуры можно использовать как ключи, если все их поля сравнимы. Например, если структура содержит только базовые типы (int, string и т.п.), то её можно использовать как ключ. Если же структура содержит срезы, карты или функции, то использовать её как ключ нельзя.
Пример:
package main
import "fmt"
type Point struct {
X, Y int
}
func main() {
m := make(map[Point]string)
p := Point{X: 1, Y: 2}
m[p] = "точка"
fmt.Println(m[p]) // вывод: точка
}
Если структура содержит несравнимые поля, компилятор выдаст ошибку.