Назад к вопросам
МТС Digital
Junior — Middle
76
Можно ли применять непустую структуру в качестве ключа в контейнере Map?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go ключом в map может быть любой тип, который поддерживает сравнение с помощью оператора ==. Структуры (struct) можно использовать в качестве ключей, если все их поля сравнимы. Непустая структура подходит, если она не содержит срезов, карт, функций или других несравнимых типов.
Пример использования структуры в качестве ключа:
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]) // вывод: точка
}
Если структура содержит несравнимые поля, например, срезы, то использовать её в качестве ключа нельзя.