Middle
Welche Datentypen können als Schlüssel verwendet werden?
sobes.tech KI
Antwort von AI
In Go können die Schlüssel in einer Map nur solche Typen sein, die die Vergleichsoperation (==) unterstützen. Dies liegt daran, dass zum Suchen eines Schlüssels in einer Hash-Tabelle die Schlüssel auf Gleichheit verglichen werden müssen.
Typen, die als Schlüssel verwendet werden können:
- Primitive Typen:
int,float64,string,boolusw. - Zeiger
- Strukturen, wenn alle ihre Felder vergleichbar sind
- Arrays, wenn die Elemente vergleichbar sind
Typen, die nicht als Schlüssel verwendet werden können:
- Slices (
slice) - Maps (
map) - Funktionen
Dies liegt daran, dass diese Typen den Vergleich mit == nicht unterstützen.
Beispiel:
m := make(map[string]int)
m["key"] = 42
// Struktur mit vergleichbaren Feldern
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Ein Punkt"
Wenn man versucht, einen Slice oder eine Map als Schlüssel zu verwenden, gibt der Compiler einen Fehler aus.