Sobes.tech
Junior — Middle

Welche Datentypen können als Schlüssel in einem Map-Container fungieren?

sobes.tech KI

Antwort von AI

In Go kann der Schlüssel in einer Map nur aus vergleichbaren (vergleichbaren) Datentypen bestehen. Das bedeutet, dass der Operator == für den Schlüssel definiert sein muss.

Geeignete Schlüsseltypen:

  • Boolesche Werte (bool)
  • Zahlen (int, float64, uint8 usw.)
  • Strings (string)
  • Zeiger
  • Kanäle
  • Schnittstellen, wenn der dynamische Typ vergleichbar ist
  • Strukturen, bei denen alle Felder vergleichbar sind

Nicht als Schlüssel verwendbar:

  • Slices (slice)
  • Maps (map)
  • Funktionen

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 versucht wird, einen nicht vergleichbaren Typ als Schlüssel zu verwenden, gibt der Compiler einen Fehler aus.