Sobes.tech
Junior — Middle

¿Se puede usar una estructura de datos como clave en un mapa o tabla hash?

sobes.tech AI

Respuesta de la IA

En Go, una estructura de datos puede usarse como clave en un mapa (mapa) si cumple con los requisitos de comparabilidad (comparable). Esto significa que todos los campos de la estructura deben ser de tipos que puedan compararse usando el operador ==.

Por ejemplo, las estructuras que contienen solo tipos básicos (int, string, bool, etc.) u otras estructuras comparables pueden ser claves. Sin embargo, las estructuras que contienen slices, mapas o funciones no pueden ser claves, ya que estos tipos no son comparables.

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 dará un error al intentar usarla como clave del mapa.