Sobes.tech
Junior — Middle

¿Qué tipos de datos pueden actuar como clave en un contenedor map?

sobes.tech AI

Respuesta de la IA

En Go, la clave en un mapa solo puede ser de tipos de datos que sean comparables (comparable). Esto significa que debe estar definido el operador == para la clave.

Tipos de clave adecuados:

  • Valores booleanos (bool)
  • Números (int, float64, uint8, etc.)
  • Cadenas (string)
  • Punteros
  • Canales
  • Interfaces, si el tipo dinámico es comparable
  • Estructuras cuyos campos sean comparables

No se puede usar como clave:

  • Slices (slice)
  • Mapas (map)
  • Funciones

Ejemplo:

m := make(map[string]int)
m["key"] = 42

// Estructura con campos comparables
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Un punto"

Si se intenta usar un tipo no comparable como clave, el compilador dará un error.