Sobes.tech
Junior — Middle

¿Se puede usar una estructura no vacía como clave en un contenedor Map?

sobes.tech AI

Respuesta de la IA

В 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]) // вывод: точка
}

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