Sobes.tech
Junior — Middle

¿Se pueden usar estructuras como claves en un array asociativo o mapa?

sobes.tech AI

Respuesta de la IA

En Go, las claves en un mapa solo pueden ser de tipos que soporten la operación de comparación (el operador ==). Las estructuras pueden usarse como claves si todos sus campos son comparables. Por ejemplo, si una estructura solo contiene tipos básicos (int, string, etc.), puede usarse como clave. Sin embargo, si la estructura contiene slices, mapas o funciones, no se puede usar como clave.

Ejemplo:

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] = "punto"
    fmt.Println(m[p]) // salida: punto
}

Si la estructura contiene campos no comparables, el compilador generará un error.