Sobes.tech
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, bool usw.
  • 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.