Middle
¿Qué tipos de datos se pueden usar como claves?
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 ==). Esto se debe a que, para buscar una clave en una tabla hash, es necesario comparar las claves por igualdad.
Tipos que se pueden usar como claves:
- Tipos primitivos:
int,float64,string,bool, etc. - Punteros
- Estructuras, si todos sus campos son comparables
- Arreglos, si los elementos son comparables
Tipos que no se pueden usar como claves:
- Slices (
slice) - Mapas (
map) - Funciones
Esto se debe a que estos tipos no soportan comparación mediante ==.
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 intentas usar un slice o un mapa como clave, el compilador dará un error.